のプロトタイプを再定義した後prototype.constructorない:上記のコードでオブジェクトコンストラクタ点は例えばコンストラクタ関数
function F() {};
F.prototype = {
test: function() { console.log('test'); }
};
console.log(F.prototype.constructor); // [Function: Object]
F.prototype = 'string';
var o = new F();
console.log(F.prototype.constructor); // [Function: String]
console.log(F.prototype); // string
console.log(o.constructor); // [Function: Object]
o.test(); // Can't work
を、最初のコンストラクタは、F.prototype.constructor
F()
あります。しかし、F.prototype
を'string'
にリセットしました。そして、私の質問があります。
- リセット後
F.prototype
'string'
、になぜF.prototype.constructor
が[Function: String]
になります。つまり、F.prototype.constructor
の値が決まりますか? - 私は、新しいオブジェクトがそう
constructor
プロパティがあり、prototype
オブジェクトのプロパティを継承することが知られています。しかし、なぜオブジェクトp
のコンストラクタは、元のコンストラクタ[Function: Object]
、ない[Function: String]
でしたか?
ありがとうございます。
[質問のタイトルにタグを入れないでください](https://stackoverflow.com/help/tagging) – Liam
OK、@Liam。アドバイスありがとうございます。 – zhenguoli