js의function.prototype jQuery에서의 활용
jQuery
(function(window){
var jQuery = function( selector, context ) { //jquery .
return new jQuery.fn.init( selector, context );
};
jQuery.fn = jQuery.prototype = { //jQuery .
b:3
};
// jQuery init .
var init = jQuery.fn.init = function( selector, context, root ){
this.a = 3;
}
// window jQuery , .
window.$ = window.jQuery = jQuery;
})(window)
console.log($().a) //3
console.log($().b) // undefined
문제가 발생했습니다. new jQuery.fn.init( selector, context )
문장은 jQuery를 사용하지 않습니다.prototype 아래의 속성을 초기화합니다. 단지
init 함수 아래의 속성이 초기화되었고 문제가'init.prototype'에 발생했습니다.
init.prototype = jQuery.fn;
이렇게 완전한 코드는 다음과 같아야 한다.
(function(window){
var jQuery = function( selector, context ) { //jquery .
return new jQuery.fn.init( selector, context );
};
jQuery.fn = jQuery.prototype = { //jQuery .
b:3
};
// jQuery init .
var init = jQuery.fn.init = function( selector, context, root ){
this.a = 3;
}
// jQuer.prototype init.prototype
init.prototype = jQuery.fn;
// window jQuery , .
window.$ = window.jQuery = jQuery;
})(window)
console.log($().b) //3
init가 바뀌었어요.prototype 후 출력이 정상입니다.
js 구조 함수에서this는 구조의 새로운 대상을 가리키기 때문에 init 함수 아래에서 정의합니다
a 속성은 대상에서 찾을 수 있지만 init.prototype은 jquery가 아닙니다.prototype 그래서
새 대상은 jquery를 가지지 않습니다.prototype 아래에 대량의 중요한 방법과 속성이 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.