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

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

js的閉包一定會return一個函數嗎?如果是的話,這個閉包這么理解

js的閉包一定會return一個函數嗎?如果是的話,這個閉包這么理解

九州編程 2019-10-25 21:57:49
funcitonassignHandler(){varelement=document.getElementById("id")element.onclick=function(){alert(element.id)}}
查看完整描述

2 回答

?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

答:不需要返回函數
解:閉包可以理解為:“定義在一個函數內部的函數”。內部的函數可以訪問外部函數的變量,形成一個詞法環境的組合。
即:
functioninit(){
varname="jason";//局部變量
functionshowName(){//內部函數,一個閉包
alert(name);//使用了父函數中聲明的變量
}
showName();
}
init();
無論showName是否返回這個閉包已經形成了,這表示的是一種狀態。
                            
查看完整回答
1 反對 回復 2019-10-25
?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

比較簡單的理解,在var聲明變量的這種語法環境中(es5..),一個{}包裹的就是一個閉包作用域,層層嵌套,內部的會向上追蹤,所以for(vari;;){setInterval(foo{i})}這個定時器的i在()里面是不能直接固定的
                            
查看完整回答
反對 回復 2019-10-25
  • 2 回答
  • 0 關注
  • 1283 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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