例子1function Person(name) { this.name = name}// 修改原型Person.prototype.getName = function() {}var p = new Person('jack')console.log(p.__proto__ === Person.prototype) // trueconsole.log(p.__proto__ === p.constructor.prototype) // true例子2function Person(name) { this.name = name}// 重写原型Person.prototype = { getName: function() {}}var p = new Person('jack')console.log(p.__proto__ === Person.prototype) // trueconsole.log(p.__proto__ === p.constructor.prototype) // false最后p.constructor.prototype还是有点不理解?
1 回答
倚天杖
TA贡献1828条经验 获得超3个赞
Person.prototype = {
getName: function() {}
}
var p = new Person('jack');
// 例子二中 相当于赋值成了一个对象。这时p.constructor指向了Object。而不是构造器函数Person
// 需要修正:
p.constructor = Person;
console.log(p.__proto__ === Person.prototype) // true
console.log(p.__proto__ === p.constructor.prototype) // true
添加回答
举报
0/150
提交
取消