6

[まず、この質問は、 JavaScript .prototype はどのように機能しますか?とほぼ同じ概念を取っている可能性があります。、しかし異なる文脈を持っています。]

私はこのブログに出くわしました:

JavaScript では、各オブジェクトには「プロトタイプ」と呼ばれるプロパティがあります。オブジェクトのプロトタイプを使用すると、そのオブジェクトのすべてのインスタンス (既存のインスタンスも含む) にプロパティを追加できます。

これまでの私の理解では、上記のステートメントは「プロトタイプ」と「[[プロトタイプ]]」を区別していないため、初心者にとっては混乱を招きます。すべてのオブジェクトにprototypeプロパティがあるわけではありません。次に例を示します。

var myobject = {};
myobject.prototype; // Undefined

次のように言ったほうがよいと思います。

JavaScript では、各オブジェクトに「[[Prototype]]」という内部プロパティがあり、一部のブラウザでは「__proto__」という非標準プロパティにアクセスすることで表示できます。オブジェクトのプロトタイプを使用すると、そのオブジェクトのすべてのインスタンス (既存のインスタンスも含む) にプロパティを追加できます。関数(したがってコンストラクター) のみが、その関数/コンストラクターによって作成されたそのオブジェクトのすべてのインスタンスにプロパティを追加できるように設定する「プロトタイプ」プロパティを持っています。

これは JavaScript プロトタイプのより正確な説明ですか、それとも何か不足していますか? 前もって感謝します。

4

0 に答える 0