JavaScriptの各オブジェクトにはプロトタイプがあります。試してみてください:
コードコピーは次のとおりです。
varrichard = new object();
alert(typeof(richard.prototype));
結果は憂鬱であり、ブラウザでポップアップするものは未定義です...
どうしたの?
別の例を見てみましょう。
コードコピーは次のとおりです。
functionrichard(){}
alert(typeof(richard.prototype));
上記の例は、関数オブジェクトのみがプロトタイプを持っているのに対し、一般的なオブジェクトにはプロトタイプがないことを示しているようです。真実は何ですか?
別の文を実装して理解しましょう。
コードコピーは次のとおりです。
varrichard = new object();
アラート(リチャード.__ proto__);
わかりますか?
実際、私たちは皆、誤解を招きます。つまり、JavaScriptオブジェクトのプロトタイプチェーンはプロトタイプというプロパティであり、アクセスできるということです。実際、JavaScriptのプロトタイプとプロトタイプという名前の属性は、最初はまったく関係がなく、2つの異なるものです。
一般的なオブジェクトの場合、__Proto__などの属性を介してオブジェクトから継承されたプロトタイプにのみアクセスできます。
関数オブジェクトの場合、それが確立されると、関数オブジェクトのプロトタイプがプロトタイププロパティに割り当てられています。