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

javaScript原型模式中变量的查找

javaScript原型模式中变量的查找

慕田峪7331174 2018-10-09 17:14:03
function Person(){  }  Person.prototype.age=7;  Person.prototype.getAge=function(){    return age;  } //调用函数  var person=new Person();  alert(person.getAge());在调用person.getAge()后,会沿着作用域链查找该getAge()方法,首先会在new Person()对象中查找,没有找到;然后进入下一个作用域链对象,此时的对象为Person.prototype,而该对象中有getAge()方法,执行该方法后,由于目前作用域链的前端对象是Person.prototype,要返回age的值,该age值的查找得从原型对象Person.prototype中进行查找,此时原型对象中的age=7;那么调用函数应该返回的age也为7,也就是说,person.getAge()返回为7,但是,最后出现了错误:Uncaught ReferenceError: age is not defined各位大神,为啥会报错啊??
查看完整描述

1 回答

?
森栏

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

你在getAge函数里面返回的是全局的age,因为你在这个函数里没有定义局部age,那么浏览器就会往全局变量里面找age,但是你全局变量里面也没有age,所以就像一楼说得要用this.age,这时候才是调用当前对象的age属性。


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

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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