1. ホーム
  2. javascript

[解決済み] JavaScriptにおける__proto__ VS. prototype

2022-03-18 19:40:49

質問

<ブロッククオート

この図からも、すべてのオブジェクトにはプロトタイプがあることがわかる。コンストラクタ 関数Fooもまた、独自の __proto__ であり、Function.prototype, を参照し、さらにその __proto__ プロパティで Object.prototypeになります。したがって、繰り返しになりますが、Foo.prototypeは単なる明示的な のプロパティは、bとcのオブジェクトのプロトタイプを参照します。

var b = new Foo(20);
var c = new Foo(30);

とはどのような違いがあるのでしょうか? __proto__prototype ?

この図は、以下のサイトから引用しました。 dmitrysoshnikov.com .

注:現在では 第2版(2017年) を上記2010年の記事に追加しました。

解決方法は?

__proto__ は、メソッドなどを解決するためにルックアップチェーンで使用される実際のオブジェクトです。 prototype を構築するために使用されるオブジェクトです。 __proto__ でオブジェクトを作成した場合 new :

( new Foo ).__proto__ === Foo.prototype;
( new Foo ).prototype === undefined;