JavaScript の __proto__ 属性の説明に重点を置く (グラフィック チュートリアル)

亚连
リリース: 2018-05-21 14:55:25
オリジナル
1664 人が閲覧しました

この記事では主に JavaScript の __proto__ 属性を紹介します。JavaScript のいわゆるオブジェクトについては、必要なときに参照できるオブジェクトのプロトタイプを指します。

JavaScript はオブジェクト指向言語です。はオブジェクトです。

では、オブジェクトを生成するにはどうすればよいでしょうか? Java の世界では、オブジェクトはクラスによってインスタンス化され、平たく言えば、物事は型に抽象化され、この型 (クラス) を使用して特定の物理オブジェクト (オブジェクト) が生成されます。

しかし、JSにはクラスの概念はありません。「プロトタイプ」があり、オブジェクトはプロトタイプから派生します。平たく言えば、JSの世界における「プロトタイプ」とは型ではなく、特定の物理的なオブジェクト(オブジェクト)のことです。すべてのオブジェクトは別のオブジェクトから派生し、この派生オブジェクトはいわゆる「プロトタイプ オブジェクト」です。

JavaScript には 3 種類のオブジェクトがあります。1. ユーザー作成オブジェクト、2. コンストラクター オブジェクト、3. プロトタイプ オブジェクト

  • ユーザーによって作成されたオブジェクトは、一般的な意味では、new ステートメントを使用して明示的に構築されます。

  • コンストラクターのオブジェクト、通常のコンストラクター、つまり新しい呼び出しを通じて通常のオブジェクトを生成する関数

  • プロトタイプオブジェクト、コンストラクターのprototype属性が指すオブジェクト。

これら 3 つのオブジェクトにはそれぞれ、オブジェクトのプロトタイプを指す __proto__ 属性があり、オブジェクトからのトラバースは Object.prototype まで遡ることができます。

コンストラクターはすべて、プロトタイプ オブジェクトを指すプロトタイプ オブジェクトを持ち、コンストラクターを通じてオブジェクトが作成されると、作成されたオブジェクトの __proto__ 属性はコンストラクターのプロトタイプ属性を指します。

プロトタイプ オブジェクトには、対応するコンストラクターを指すコンストラクター属性があります。

話は安いのでコードを見せてください! コードを見てみましょう:

var obj = {};
console.log(obj);
ログイン後にコピー

2016510171046523.png (154×46)

__proto__ を展開して見てみましょう: これはいくつかのデフォルトのメソッドです。

2016510171106039.png (331×351)

この __proto__ オブジェクトには __proto__ オブジェクトも存在することは間違いなく、すべてのオブジェクトにはそのプロトタイプ オブジェクトを指す __proto__ 属性があります。この __proto__ の __proto__ を出力しましょう:

console.log(obj.__proto__.__proto__); //--> null
ログイン後にコピー

結果は null で、最上位のプロトタイプ オブジェクトに到達したことを示します。 obj は中括弧 {} で定義されており、obj のプロトタイプ オブジェクトは当然ながら JS のトップレベル オブジェクトです。コードの一方の端をもう一度見てください

parent.__proto__ --> トップレベルのプロトタイプ オブジェクト

上記は、将来皆さんに役立つようにまとめたものです。

2016510171136445.png (176×141)関連記事:

  • JavaScriptのプロトタイプの総合分析

  • JavaScriptプログラム構築におけるデザインパターンの組み合わせパターンの使い方(上級)

  • JavaScriptでのオブジェクト作成のすべて モデル分析(グラフィックチュートリアル) )


以上がJavaScript の __proto__ 属性の説明に重点を置く (グラフィック チュートリアル)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート