不正确的prototype.constructor的影响

时间:2016-11-08 02:54:31

标签: javascript constructor prototype

当我们声明javascript函数PersonPerson.prototype.constructor === Person。然后我们重写Person.prototype,构造函数为Object而不是Person

function Person() {
   this.name = 'Kitty';
}
console.log(Person.prototype.constructor === Person) // true
Person.prototype = {
    say:function(){
       return 'Hi';
    }
}
console.log(Person.prototype.constructor === Person) // false
console.log(Person.prototype.constructor === Object) // true

因此,最好将构造函数重置为自身。 我的问题是错误Person.prototype.constructor的实际影响是什么?它似乎与承诺的行一致。

// Person.prototype.constructor = Person
var me = new Person();
console.log(me instanceof Person) // true
console.log(me.name) // Kitty
console.log(me.say()) // Hi
console.log(me.constructor === Person) // false

更一般地说,prototype.constructor到底做了什么?

0 个答案:

没有答案