すべての関数オブジェクトは__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 に答える