복붙노트

[JQUERY] 값, 프로토 타입 및 특성의 차이

JQUERY

값, 프로토 타입 및 특성의 차이

해결법


  1. 1.나도 그 패턴을 좋아하지 않는다. 그들은 모두 jQuery를 인스턴스의 생성자 인 init 함수,이 - JQuery와 함수 자체가 새와 객체 생성 주변 단지 래퍼입니다 :

    나도 그 패턴을 좋아하지 않는다. 그들은 모두 jQuery를 인스턴스의 생성자 인 init 함수,이 - JQuery와 함수 자체가 새와 객체 생성 주변 단지 래퍼입니다 :

    function jQuery(…) { return new init(…); }
    

    그런 다음, 그들은 init.prototype 객체에 해당 인스턴스의 메소드를 추가합니다. 이 개체는 jQuery.fn에서 인터페이스로 노출되어있다. 는 fn 속성을 사용하지 않는 사람들을 위해 - 또한, 그들은 그 객체에 jQuery를 함수의 프로토 타입 속성을 설정합니다. 이제 당신은

    jQuery.prototype = jQuery.fn = […]init.prototype
    

    그러나 그들은 또한 2 [이상] 일을 :

    나는 그들이 바보 - 증거로 모든이 작업을 수행 할 수 / 필요가 있다고 생각하지만, 자신의 코드가 엉망입니다 - 객체의 문자로 시작하고 이후에 초기화 프로토 타입 일을 할당.


  2. 2.그것은 당신이 방법의 외부 수집 및 래퍼와 jQuery를 기능과 API를 생각하면 소화하기 쉽다.

    그것은 당신이 방법의 외부 수집 및 래퍼와 jQuery를 기능과 API를 생각하면 소화하기 쉽다.

    그것은 기본적으로 다음과 같이 구성 것 :

    function a() { return new b();}
    a.prototype.method = function() { return this; }
    function b() {}
    b.prototype = a.prototype;
    

    jQuery를 A는이고 B는 jQuery.prototype.init 것을 제외.

    나는 확실히 Resig 씨가 초기화 프로토 타입의 API를 생성자를 배치하기위한 자신의 이유를 가지고,하지만 난 그들을 볼 수 없습니다. BERGI이 언급 한 것 외에 더 기묘 몇 :

    1) 패턴 이상한 무한 루프에있게 느릅 jQuery.prototype jQuery.fn.init.prototype에서 참조 복사본을 필요

    var $body = new $.fn.init.prototype.init.prototype.init.prototype.init('body');
    

    2) 모든 jQuery를 수집 실제로 jQuery.fn.init의 인스턴스이지만, 그들은 같은 프로토 타입 객체, 그 트릭을 참조하기 때문에 우리는 컬렉션이 jQuery를의 인스턴스이라고 "생각"할 수 있습니다. 이 같은 같은 마법을 수행 할 수 있습니다

    function a(){}
    function b(){}
    a.prototype = b.prototype;
    console.log( new b instanceof a); // true
    console.log( new a instanceof b); // true
    

    (!) 참고 : 개인적으로 이상한 것들없이 비슷한 결과 다음과 같은 생성자 패턴을 사용하고 있습니다 :

    var a = function(arg) {
        if (!(this instanceof a)) {
            return new a(arg);
        }
    };
    a.prototype.method = function(){ return this; };
    
  3. from https://stackoverflow.com/questions/12143590/difference-of-the-value-prototype-and-property by cc-by-sa and MIT license