全体的なアーキテクチャ
1574 ワード
一般的なコンストラクション関数はインスタンスを作成し、newなしでインスタンスを作成します.テキストアドレス
jqueryコード を分離するためである. new作用 オブジェクトを作成します.thisはオブジェクト を指します. にリダイレクトする.
ケーススタディは、 があるかどうかを問い合わせる. を指す. が呼び出される.
チェーンコールメソッドは、必要に応じて に戻る.
プラグインインタフェースは を見てみましょう.
まとめ全体のフレームワーク、いくつかの偽コード、それから を細分化します
// 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がない、および個々のインスタンスinit
のうちthis
はjQuery
上の方法を取得できないため、プロトタイプはケーススタディ
$().say()
init
のオブジェクトを返すため、__proto__
を介してinit
のprototype
にinit
原型には本来ないが、原型が指向しているため、jQuery
上のprototype
jQuery
のprototype
にこのメソッドがあるため、チェーンコール
this
プラグインインタフェース
extend
を使用しているので、extend
関数jQuery.extend = jQuery.fn.extend = function () {
//
// ,
//
for () {
// , source
if () {
//
for () {
// ,
if () {
// , ,
}else {
// , ,
}
}
}
}
// return
}
まとめ