JavaScriptはオブジェクト指向の音声です。つまり、すべてがオブジェクトです。
では、オブジェクトを生成する方法は? Javaの世界では、オブジェクトはクラスインスタンスによって作成されます。素人の用語では、それらは物事を型に抽象化し、この金型(クラス)を使用して特定の実際のオブジェクト(オブジェクト)を生成します。
ただし、JSにはクラスの概念はありません。一部は「プロトタイプ」であり、オブジェクトはプロトタイプから派生しています。素人の用語では、JSの世界では、「プロトタイプ」は型ではなく、具体的なオブジェクト(オブジェクト)です。すべてのオブジェクトは別のオブジェクトから派生し、この導出されたオブジェクトはいわゆる「プロトタイプオブジェクト」です。
JavaScriptには3つのタイプのオブジェクト、1つのユーザー作成オブジェクト、2つのコンストラクターオブジェクト、3つのプロトタイプオブジェクトがあります
これらの3つのオブジェクトにはそれぞれプロパティ-_proto__属性があり、オブジェクトのプロトタイプを指し、オブジェクトを追跡することができます。
コンストラクターにはプロトタイプオブジェクトがあり、プロトタイプオブジェクトを指します。オブジェクトがこのコンストラクターを介して作成されると、作成されたオブジェクトの__Proto__属性は、コンストラクターのプロトタイプ属性を指します。
プロトタイプオブジェクトには、対応するコンストラクターを指すコンストラクタープロパティがあります。
話は安いです、コードを見せてください!コードを見てみましょう:
var obj = {}; console.log(obj);__proto__を展開して、次のようにしましょう。いくつかのデフォルトの方法です。
この__Proto__オブジェクトに__Proto__オブジェクトもあることは間違いなく起こります。先ほど言ったように、各オブジェクトには、プロトタイプオブジェクトを指す__Proto__属性があります。この__proto__で__proto__を印刷しましょう。
console.log(obj .__ proto __.__ proto__); //-> null
結果はnullであり、トップレベルのプロトタイプオブジェクトが到着したことを示しています。 OBJはブレース{}で定義されており、OBJのプロトタイプオブジェクトは当然、JSのトップレベルオブジェクトです。
片側のコードを見て、理解を強化しましょう。
var parent = {name: "parent"}; var child = {name: "child"、__proto__:parent}; var subchild = {name: "subchild"、__proto__:child} console.log(subchild);