全体的なアーキテクチャ

1574 ワード

一般的なコンストラクション関数はインスタンスを作成し、newなしでインスタンスを作成します.テキストアドレス
//  new  
function Test() {
  //      this
  return new Object()
}
// new       
function Test() {}; new Test();

jqueryコード
jQuery = function (selector,context) {
  return new jQuery.prototype.init()
}
jQuery.prototype = {
  init: function () {
    this.name = 
    return this
  },
  say: function () {}
}
jQuery.prototype.init.prototype = jQuery.prototype
  • return new は、newがない、および個々のインスタンス
  • を分離するためである.
  • new作用
  • オブジェクトを作成します.thisはオブジェクト
  • を指します.
  • initのうちthisjQuery上の方法を取得できないため、プロトタイプは
  • にリダイレクトする.
    ケーススタディ
    $().say()
    
  • は、initのオブジェクトを返すため、__proto__を介してinitprototype
  • があるかどうかを問い合わせる.
  • init原型には本来ないが、原型が指向しているため、jQuery上のprototype
  • を指す.
  • jQueryprototypeにこのメソッドがあるため、
  • が呼び出される.
    チェーンコール
  • メソッドは、必要に応じてthis
  • に戻る.
    プラグインインタフェース
  • extendを使用しているので、extend関数
  • を見てみましょう.
    jQuery.extend = jQuery.fn.extend = function () {
      //      
      //     ,         
      //     
      for () {
        //    ,    source
        if () {
          //      
          for () {
            //    ,        
            if () {
              //   ,         ,  
            }else {
              //   ,          ,    
            }
          }
        }
      }
      // return       
    }
    

    まとめ
  • 全体のフレームワーク、いくつかの偽コード、それから
  • を細分化します