jQuery 플러그인 개발 방법
1.jQuery.extend(object);jQuery 클래스 자체를 확장하기 위해서입니다.클래스에 새로운 방법을 추가합니다.전역 함수로 호출하는데 주로 전역 함수를 확대하는 데 쓰인다.jQuery.fn.extend(object);jQuery의 실례 대상에 추가하는 방법은 실례 대상에서 호출되며, 예를 들어 $.fn.each();
extend
정적 방법을 추가합니다. 이 확장 방법을 $로 직접 호출합니다.
$.extend({
test:function(param){
alert(param);
}
});
$.test(1);// 1
$.test(1)는 jQuery라는 클래스 자체의 방법이 되었다.
extend 확장:
Object1, Object2, Object3을...target에 합치면 합쳐진 target으로 되돌아옵니다. 이 방법은 합쳐진 후에 target의 구조를 수정한 것을 알 수 있습니다.
뒤에 있는 매개변수가 앞에 있는 매개변수와 이름이 같으면 뒤에 있는 매개변수가 앞에 있는 매개변수 값을 덮어씁니다.
deep: Boolean이 true로 설정되어 깊이 복사됨
fn.extend
$.fn.extend({
test:function(){
alert("1");
}
});
$("div").test();
test () 가 jQuery 실례화 대상이 되는 방법입니다.
심도 있는 복사
만약에 하나의 변수에 하나의 대상을 부여한다면 양자의 값은 같은 인용이고 그 중의 한 쪽을 바꾸면 다른 한 쪽도 상응하여 바뀔 것이다.
통과
Object.assign
let a = {
name: " "
}
let b = Object.assign({}, a)
a.name = " ";
console.log(b.name) // " "
// (…)
let b = {...a}
a.obj.name=" ";
console.log(b.name) //" ";
얕은 복사는 1층 문제만 해결하고 이어지는 값에 대상이 있다면 똑같은 인용이 있을 것이다.
let a = {
name: " ",
obj:{
name:" "
}
}
let b = {...a}
a.obj.name=" ";
console.log(b.obj.name) //" ";
JSON.parse(JSON.stringify(object))
로 해결할 수 있습니다.let a = {
name: " ",
obj:{
name:" "
}
}
let b = JSON.parse(JSON.stringify(a))
a.obj.name=" ";
console.log(b.obj.name) //" ";
이 함수는 내장 함수 중 가장 빠른 깊이 복사 처리 성능이지만 이 방법에는 한계가 있습니다.
undefined
let a = {
a: undefined,
b: function() {},
c: 'yck'
}
let b = JSON.parse(JSON.stringify(a))
console.log(b) // {c: "yck"}
물론 당신의 데이터에 상기 세 가지 상황이 포함되어 있다면lodash의 깊은 복사 함수를 사용할 수 있습니다.
만약 복사할 대상이 내장 형식을 포함하고 함수를 포함하지 않는다면 사용할 수 있습니다
MessageChannel
1 function structuralClone(obj) {
2 return new Promise(resolve => {
3 const {port1, port2} = new MessageChannel();
4 port2.onmessage = ev => resolve(ev.data);
5 port1.postMessage(obj);
6 });
7 }
8
9 var obj = {a: 1, b: {
10 c: b
11 }}
12 //
13 // undefined
14 const clone = await structuralClone(obj);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.