2016-12-25 2 views
0
var jQuery = function(selector) { 
    return new jQuery.fn.init(selector); 
}; 

jQuery.fn = jQuery.prototype = {...}; 

var init = jQuery.fn.init = function(selector){ 
    this.selector = selector; 
    this.element = document.querySelector(this.selector); 
}; 

console.log(
    jQuery('div').selector 
); 

のようなライブラリを作成し、私は現在のjQueryがどのように機能するかを研究していますが、私はいくつかの質問jQueryのスタイル

  1. jQuery.fn = jQuery.prototype = {};なぜprototype = objectjQuery.prototype.foo = function...

  2. 後に名前が付属して、通常はプロトタイプされていないのです

    var init = jQuery.fn.init (jQuery.prototoype.init)var initを削除すると、次のようなエラーが表示されます。var jQuery.fn.init = ...

答えて

1

1)jQuery.fn = jQuery.prototype = {};なぜプロトタイプは=オブジェクト

は実際には、プロトタイプは、あなたが何かのように、

**jQuery.prototype.get = function(){ 
//Code 
}** 

を行う場合にのみ、あなたが実際に「GET」名前だけでプロトタイプオブジェクトのメンバ関数を作成しているオブジェクトです。

**jQuery.prototype = { 
    "get" : function(){ 
    } 
}** 
は、initを削除すると、文は=のvar jQuery.fn.initようになる)

2 ...

実はこれは有効ではありません:あなたはまた、このようにそれを行っている可能性がjQueryオブジェクトは既に使用可能であるためこれは構文上の誤りです。このようなオブジェクトのメンバーは作成できません。そのために は、あなただけの空のオブジェクトのJavaScript側から、すべて左オーバー をクリアして、全く新しい「クラス」または 対象になりもするプロトタイプを設定

**jQuery.fn.init = function(){ 
}** 
+0

はjQuery.fn.init = jQuery.prototype.initですか?これはjQuery.prototype = {}オブジェクトに関連していますか? –

1
  1. として行う必要があります。

  2. var -partを削除すると、基本的に完全な 定義が削除されます。変数名にはドットを含めることはできません。ドットには という定義ではオブジェクトが必要です。したがって、var a.b.c = 1は になりません。オブジェクトはa = { b: {} }である必要があり、次に a.b.c = 1を実行する必要があります。

関連する問題