JavaScript-プロトタイプ、プロトタイプチェーン、オブジェクト継承

1248 ワード

プロトタイプとプロトタイプチェーン
すべてのJavaScriptオブジェクトは、1つのprototype(プロトタイプオブジェクト)から属性とメソッドを継承します.C++ベースがあるのは、C++の継承を参照して理解できます.
Notes:
1.プロトタイプの応用
	(1)         ,        
	(2)     ** 、  、 、   ** 
		   **    **   **  **       ,         prototype   (          ),             ,                  ,     delete  。

2. __proto__ constructor
    __proto__   --       
 	    __proto__         (     )
constructor 	 --         

3.プロトタイプチェーン
JavaScriptのオブジェクト継承はプロトタイプチェーンによって実現される.オブジェクトを定義した後、オブジェクトを介して属性にアクセスすると、そのオブジェクトにこの属性がない場合、そのプロトタイプに遡ってそのプロトタイプに薬のアクセスがあるかどうかの属性が検索され、さらにプロトタイプを上に探さなければ、このような継承関係がプロトタイプチェーンになります.例を挙げると、强ちゃんはスーパーでキャンディを买って、お金を払っていないで、それから家に帰ってお父さんにお金をもらって、强ちゃんのお小遣いもおやつを食べて使ってしまったので、强ちゃんは强ちゃんを连れてお金を要求して、强ちゃんはお小遣いを持って、最后にスーパーに支払って、流水の切符の上で强ちゃんがキャンディを1元払うことを示しています....JavaScriptのプロトタイプチェーンはC++の親サブクラスとの相互関係が一致しており,C++を学習したことがある場合はプロトタイプチェーンの理解が早い.
4.Object.create()メソッド
オブジェクトのほとんど(すべてではない)は最終的にObjectから継承されます.prototype、すなわち、絶対対数の場合、Objectはプロトタイプチェーンの先端に位置する.JavaScriptには、Object.create(定義済みのプロトタイプ)は、新しいオブジェクトを作成し、既存のオブジェクトに新しく作成されたオブジェクトを提供する_を提供するために使用されます.proto__属性;Object.create(null)という作成言語は、上述したほとんどの対立面であり、Objectから継承されていないごく少数のオブジェクトを生成します.