質問: new MyClass(); ``` 書籍によれば、MyClass.prototypeとobjオブジェクトの*proto*が参照しているものが同じであり、その同じオブジェクトが変数objが参照するオブジェクト(new MyClass()?)のプロトタイプオブジェクトである。 紛らわしいが、MyClass.prototypeが参照しているオブジェクトは、MyClassのプロトタイプオブジェクトではない。MyClassのプロトタイプオブジェクトは、Function.prototypeの参照先オブジェクトである。 と記述されています。 力及ばず、全体的に何を言っているのかいまいち理解できなかったので、下記の疑問が的外れかもしれません。 objは、MyClass()のインスタンスだから`__proto__`には、MyClass.prototypeが入っているのでは、と思ったのですが参照しているものが同じということは、MyClass.prototypeがMyClass.prototypeを参照、つまり自己参照しているのでしょうか。 で、その自己参照しているものがobjが参照するオブジェクトのプロトタイプオブジェクトである。ということでしょうか。
回答: > > objは、MyClass()のインスタンスだから*proto*には、MyClass.prototypeが入っているのでは、と思ったのですが > > > その通りです。よく読んでください。 > > 紛らわしいが、`MyClass.prototype` が参照しているオブジェクトは、MyClassのプロトタイプオブジェクトではない。MyClassのプロトタイプオブジェクトは、Function.prototypeの参照先オブジェクトである。 > > > 「`MyClass.prototype` が参照しているオブジェクトは、`MyClass` の**インスタンス**のプロトタイプオブジェクトではない」と読み違えていませんか。 「`MyClass.prototype` が参照しているオブジェクトは、`MyClass`のプロトタイプオブジェクトではない」は `MyClass.__proto__ !== MyClass.prototype` を表しています。 Re: aaaaaaaa さん