1

すべての関数オブジェクトは__proto__、内部プロパティとして持っています。彼らはprototype財産も持っています。prototypeもオブジェクトなので、プロパティも持っています__proto__。私の質問は、__proto__プロトタイプ内と関数オブジェクト内の両方のプロパティが を指していFunction.prototypeますか?

4

4 に答える 4

1

いいえ。関数のプロトタイプ プロパティ (つまりSomeFunc.prototype) は通常のオブジェクトであるため、その内部__proto__プロパティは を指しObject.prototypeます。

それをテストする簡単な方法:

function Foo() {};
console.log(Object.getPrototypeOf(Foo) === Object.getPrototypeOf(Foo.prototype));
// logs false
console.log(Object.getPrototypeOf(Foo) === Function.prototype);
// logs true
console.log(Object.getPrototypeOf(Foo.prototype) === Object.prototype);
// logs true

関数のみが から継承されFunction.prototype、他のオブジェクトは継承されません。

于 2013-01-27T18:17:16.153 に答える