为了账号安全,请及时绑定邮箱和手机立即绑定

js原型的一个问题

js原型的一个问题

白猪掌柜的 2019-02-14 13:12:16
例子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


查看完整回答
反对 回复 2019-02-17
  • 1 回答
  • 0 关注
  • 377 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信