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

原型链问题 求大神

原型链问题 求大神

慕的地10843 2018-10-17 17:19:38
function fn() {    this.a = 0;    this.b = function() {        alert(this.a)    }}fn.prototype = {    b: function() {        this.a = 20;        alert(this.a);    },    c: function() {        this.a = 30;        alert(this.a);    }}var myfn = new fn();myfn.b();myfn.c();构造函数和原型里面同样有方法b 变量为什么只有在构造函数里面有效?
查看完整描述

1 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

因为对象 obj 属性查找的规则是:

  1. 先在对象 obj 上查找,找到则直接返回该属性,结束查找

  2. 在对象的原型 obj.__propo__ 上查找,找到则直接返回该属性,结束查找

  3. 在原型的原型(原型链)上查找,找到则直接返回该属性,结束查找

  4. 重复第3步,直到原型指向null,结束查找,返回undefined

具体这个问题:myfn.b在对象属性上找到了,不需要去原型链上查找。


查看完整回答
反对 回复 2018-11-30
  • 1 回答
  • 0 关注
  • 470 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号