JSプロトタイプ、プロトタイプチェーン

、コンストラクタは、コンストラクタでのprototypeプロパティを持って置く新しいの後ろにそう言ってきた継承する前に、JSにはクラスが存在しない、jsの継承はそれに依存します。

多くあるJSにおけるオブジェクトの種類は、このプロパティは適切なオブジェクトプロトタイプに対応し、オブジェクトに共通の通常のオブジェクトおよび関数オブジェクトが_proto_と呼ばれる性質を有することになるです。

ここでオブジェクトを追加また、プロパティは、コンストラクタでいる。このプロパティは、コンストラクタのプロトタイプを作成するために、ポイントすべてのインスタンスに対応しています。(別の言い方をすれば、彼はコンストラクタへのポインタです)。

このprototypeプロパティは、コンストラクタは、新たに出てきた、プロトタイプは、他のオブジェクトのすべてのインスタンスに割り当てられたプロトタイプの値となる作成します。だから、コンストラクタを解決するためには、トラブルのシェアをインスタンス化することはできません。(ここで私は私のjsの継承に述べている、とあなたが見てみることができる方法を知りませんでした。)

それはこれに沸きます。各オブジェクトは_proto_ある性質を持っています。プロトタイプとして属性値の値の関数として、関数オブジェクトの属性だけでなく_Proto_、およびプロトタイプ属性プロトタイプは、オブジェクトのすべてのインスタンスに割り当てられています。

それは_proto_割り当てられています。

簡単な例は、説明します。

関数d(名){

  this.name =名前;

}

するvar A =新しいD( '笑');   

ここでは、新たなプロセスです、

1、VaRのA = {};オブジェクトを初期化します。

2、a._proto_ = d.prototype; pはd.prototypeを__proto__するオブジェクトプロパティです。

図3に示すように、d.call(P、 "サン"、20); Dコンストラクタは、pを初期化するために呼び出されます。コールについて/利用を適用

彼はこのポイントをリダイレクトすることで、ここでは、コールの使用について簡単に述べて適用。(:https://www.cnblogs.com/Shd-Study/p/6560808.htmlあなたはこのの詳細な理解を見ることができます)

印刷結果が真であり、ここでもう一つのポイントは、私たちがa._proto_ = d.prototypeを印刷しておくことです。

ここでは、より良い_proto_とコンストラクタを理解したい。多分性質を持って、我々は、プリントアウトを見ることができます

図では、オブジェクトのプロパティの両方を見ることができます。

これは、これがポイントのコンストラクタコンストラクタであることを教えてくれる

式の内側には、関係のいずれかの種類がありません。以前、我々はコンストラクタを持っているのプロセスは、このような、ここでf1._proto_ d.prototypeに割り当てられている、と述べています。

今日は言いたい、次が言うようになりました!

 

おすすめ

転載: www.cnblogs.com/chenyudi/p/11267283.html