1
コードスニペットは次のとおりです。なぜ誰もがa.hasOwnProperty("prototype")
が真である理由を説明できますか?関数には独自のプロトタイプがあり、他はObjectから継承されているのでしょうか?その場合、なぜc.hasOwnProperty("prototype")
はfalseですか?また、そのconstructor
のプロパティはどこから来たのですか?ありがとうJSのプロトタイプとコンストラクタプロパティ
var a = function() {
};
var b = new String("test");
var c = {};
console.log(a.hasOwnProperty("prototype"));//true
console.log(b.hasOwnProperty("prototype"));//false
console.log(c.hasOwnProperty("prototype"));//false
console.log(a.hasOwnProperty("constructor"));//false
console.log(b.hasOwnProperty("constructor"));//false
console.log(c.hasOwnProperty("constructor"));//false
console.log(a.constructor);//Function()
console.log(b.constructor);//String()
console.log(c.constructor);//Object()
ありがとう。 btw、a.hasOwnProperty( "constructor")はfalseを返します。コンストラクタのプロパティがObjectから継承されていることを意味しますか? – jason
はい、チェックします:Object.prototype.hasOwnProperty( "constructor") –