es6 のプロトタイプ チェーンとは何ですか

青灯夜游
リリース: 2022-11-15 19:28:26
オリジナル
1543 人が閲覧しました

プロトタイプ チェーンは、簡単に理解すると、プロトタイプで構成されるチェーンです。オブジェクトの属性にアクセスする場合、オブジェクト自体の属性が最初に検索されます。属性が見つからない場合は、その __proto__ 暗黙のプロトタイプ、つまりコンストラクターのプロトタイプが検索されます。さらに、コンストラクターのプロトタイプの __proto__ 内を検索し、階層ごとに上方向に検索することにより、プロトタイプ チェーンと呼ばれるチェーン構造が形成されます。

es6 のプロトタイプ チェーンとは何ですか

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

プロトタイプとは何ですか?

JS では、各関数は作成時にプロトタイプ属性を持ちます。この属性はオブジェクトを指すポインターであり、このオブジェクトは関数のプロトタイプ オブジェクトです。プロトタイプ)、これはすべてのインスタンスのプロパティとメソッドを共有するために使用される場所であるため、プロトタイプは実際には関数のコンパニオンです(生得)

var a = [1, 2, 3, 4, 5]; a.__proto__ === Array.prototype; // true
ログイン後にコピー

#プロトタイプチェーンとは何ですか?

プロトタイプ チェーンは、単純に理解すると、プロトタイプで構成されるチェーンです。オブジェクトの属性にアクセスする場合、オブジェクト自体の属性が最初に検索されます。属性が見つからない場合は、その __proto__ 暗黙のプロトタイプ、つまりコンストラクターのプロトタイプが検索されます。さらに、コンストラクターのプロトタイプの __proto__ 内を検索するため、層ごとに上向きに検索すると、

プロトタイプ チェーンと呼ばれるチェーン構造が形成されます。

コンストラクターを作成します:

function Person (name) { this.name = name } var cheng = new Person('Cheng'); var lin = new Person('Lin');
ログイン後にコピー

cheng と lin を出力すると、両方のオブジェクトに __proto__ 属性があることがわかります


es6 のプロトタイプ チェーンとは何ですか
es6 のプロトタイプ チェーンとは何ですかそして、

console.log(cheng.__proto__ === lin.__proto__); // true
ログイン後にコピー

を発見しました。それでは、インスタンス オブジェクトのこの __proto__ 属性とは一体何なのでしょうか?

console.log(cheng.__proto__ === Person.prototype); // true console.log(lin.__proto__ === Person.prototype); // true
ログイン後にコピー

概要:

インスタンス オブジェクトには列挙不可能な属性protoがあります。この属性は、コンストラクターのプロトタイプ (プロトタイプ オブジェクト) を指すポインターです。インスタンスprotoコンストラクターのプロトタイプのアクセス メソッドを渡すことができます#簡単に言えば、

インスタンス オブジェクトの __proto__ はコンストラクターのプロトタイプを指します

es6 のプロトタイプ チェーンとは何ですかそれでは、このコンストラクターのプロトタイプは何でしょうか?

Person.prototype を印刷すると、__proto__ 属性もあることがわかります。


console.log(Person.prototype.__proto__ === Object.prototype)
ログイン後にコピー
es6 のプロトタイプ チェーンとは何ですか概要: 関数のプロトタイプは、本質的には通常のオブジェクトです。したがって、彼は Object のインスタンスであるため、プロトタイプ オブジェクトの

protoプロパティは Object.prototype を指します。

es6 のプロトタイプ チェーンとは何ですか下に進み、Object.prototype の __proto__ がどこを指しているのかを見つけてください。

最終的に

null

を指していることが判明しました。要約:

JavaScript 内のすべてのデータは、最終的には独自のプロトタイプ チェーンに沿って Object.prototype

## を見つけることができます。

#概要:

インスタンス オブジェクトの __proto__ はコンストラクターのプロトタイプを指し、コンストラクターの __proto__ は Object のプロトタイプを指し、__proto__のオブジェクトは最終的に null を指します

[推奨学習:JavaScript 上級チュートリアル

]

以上がes6 のプロトタイプ チェーンとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!