$.extend () 및 $.fn.extend()의 차이
foo: function () {
alert('This is a test. This is only a test.');
}, bar: function (param) {
alert('This function takes a parameter, which is "' + param + '".');
}
});
$.extend();->this->this.foo->$.foo(); 확장 도구 방법
이
(function ($) {
$.fn.extend({
pluginName: function (opt, callback) {
//Our plugin implementation code goes here.
}
})
})(jQuery);jq 실례를 확장하는 방법
$.fn.extend()->this->$.fn->this.foo-$().foo();대상을 향하다
여러 개의 대상 변수를 쓸 때, 뒤의 대상은 모두 첫 번째 대상에게로 확장된다
var a={};
$.extent(a,{name:'hello',{age:30};})
딥 카피 및 얕은 카피
우선 jQuery의 extend는 깊이 복사할 수도 있고 얕게 복사할 수도 있습니다.\jQuery.extend 첫 번째 매개 변수는 깊이 복사 여부를 설정하는 데 사용할 수 있는 부울 값입니다.
jQuery.extend(true, { a : { a : "a" } }, { a : { b : "b" } } );
딥 복사란 객체 속성이 참조하는 객체를 모두 새 객체로 복사하여 딥 복사된 객체의 참조 맵에 기존 객체 또는 객체 맵의 객체가 포함되지 않고 완전히 다른 두 객체 맵을 분리하는 것을 의미합니다.
간단하게 말하면 간단한 복사본은 인용을 복제하는 것이다. 모든 인용 대상은 하나의 데이터를 가리키고 이 데이터를 수정할 수 있다.딥 카피는 변수 값을 복제하고 비기본 유형의 변수는 기본 유형 변수로 귀속된 후 복제합니다.
새로운 새로서 나는 이렇게 이해한다.
얕은 복사 ---> 은 한 객체의 메모리 주소에 대한 ""번호 ""를 다른 객체에 복사하는 것입니다.
심층 복제 ---> 실현 원리, 먼저 빈 대상을 새로 만들고, 메모리에 주소를 새로 열고, 복사된 대상의 모든 열거할 수 있는 (열거할 수 있는 대상 주의) 속성 방법을 하나하나 복제하고, 하위 대상 안의 모든 속성과 방법을 반복해서 복사해야 하며, 하위 대상까지...속성은 기본 데이터 형식입니다.
요약, 깊이 복제는 두 가지를 이해한다. 1, 메모리 주소를 새로 개척하고 2, 차례로 뿌리를 뽑아 복제한다.
작가: 아무리 찢어도 탈 수 없는 언니 링크:http://www.zhihu.com/question/23031215/answer/107144782출처: 저작권은 작가의 소유라는 것을 안다.상업 전재는 작가에게 연락하여 권한을 얻으십시오. 비상업 전재는 출처를 밝히십시오.
오늘 또 면접관에게 이 문제를 물었는데, 사후에 구글에 와서 이 문제가 뜻밖에도 4위에 올랐다는 것을 알았다
var cloneObj = function(obj){
var str, newobj = obj.constructor === Array ? [] : {};
if(typeof obj !== 'object'){
return;
} else if(window.JSON){
str = JSON.stringify(obj), //
newobj = JSON.parse(str); //
} else {
for(var i in obj){
newobj[i] = typeof obj[i] === 'object' ?
cloneObj(obj[i]) : obj[i];
}
}
return newobj;
};
이 함수는 대상과 그룹을 깊이 복사할 수 있다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.