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

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

為什么不能訪問到變量a

為什么不能訪問到變量a

手掌心 2019-04-10 20:49:26
functionPerson(){}Person.prototype={init:function(){vara=1;this.first();},first:function(){alert(a);}};varperson1=newPerson();person1.init();為什么a是未定義的,this.first()不是相當于閉包嗎?能訪問外部函數變量
查看完整描述

2 回答

?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

閉包內的變量訪問是根據閉包創建時所在的作用域決定的,這段代碼中函數first并不能訪問到init函數作用域內部的a變量,因為這兩個函數的作用域是互不包含的。
關于閉包的具體分析可以看看我的博文:Objective-C與JavaScript中的閉包
                            
查看完整回答
反對 回復 2019-04-10
?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

計算機科學中所謂閉包,其實是詞法閉包,換句話說函數定義的上下文中的變量在閉包內同樣可以使用。
不要記那些通俗易懂的解釋,因爲其100%是不嚴謹的,這意味著給自己挖坑。
記這句話:
閉包是由函式和與其相關的參照環境組合而成的實體。
                            
查看完整回答
反對 回復 2019-04-10
  • 2 回答
  • 0 關注
  • 336 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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