亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 475 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號