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