作成方法を達成するために2019年11月4日のjavascript

この記事では、を意味しhttps://www.cnblogs.com/chenwenhao/p/11294541.html

1.背景

バックエンド・コードは、実質的により多くの設計、わずかにしか関与アプリケーションのフロントエンドになる前に、フロントフレームとしてeasyui + jQueryのアイテムを使用します。

JSプロジェクトは、彼らが伸び修正し、より深いフロントエンドのコードを連結する、部門長の前に書かれたフレームワーク、プロセス指向の符号化方式を使用することです。

私たちは、デザインコードのjQueryの管理に統一されたアプローチ、jqueryのソースコードは、理解の一定のレベルを持っていることが必要であることを願っています。

コードを理解する最良の方法は、私はそれが車輪の簡易版をなされるべきであると感じ。プロトタイプチェーンは、一般に、参照により本明細書に理解した後、ボーエンは時間関数を作成します。

 

2.実装

 

人民__proto__プロパティは、Function.prototypeに割り当てられながら、コンストラクタconstructorプロパティは自動的に、文の後自身に割り当てられています。

Function.callは、新しいメソッドを使用して作成し、際立ったオブジェクトの方法は、プロトタイプ上に存在します。

 

 

 これはオブジェクトコンストラクタ__proto__プロパティプロトタイプオブジェクト、Function.callの実施形態オブジェクトのプロトタイプオブジェクトポイント__proto__プロパティオブジェクトへの新しい方法ポイント。

したがって、Function.call()限り、以下のように、__proto__プロパティ、新しい方法でオブジェクトを作成するためのプライベートみなさ同等を変更するオブジェクトのポイントを作成する方法。

関数の作成(){
     // 1.空のオブジェクトを作成 
    LET OBJ = {}; 
    
    // 2コンストラクタは取得 
    LETコンストラクタ= [] .shift.call(引数); 

    // プロトタイプに3リンク 
    OBJ .__ proto__ = constructor.prototype; 

    // 4.この値バインディング 
    LET結果は= constructor.apply(OBJ、引数); 

    // 5.は、新しいオブジェクトを返す
    リターン typeof演算の結果を=== 'オブジェクト'?結果:OBJ; 
}

に呼び出されます

VaRの人々は=(ピープル、ボブ'、22)を作成します。

 

 

おすすめ

転載: www.cnblogs.com/hexx/p/11792135.html