閱讀829 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Es6

再來看一個更常見的例子,了解下如果不用ES6,而用閉包如何解決這個問題。

var clickBoxs = document.querySelectorAll('.clickBox')
for (var i = 0; i < clickBoxs.length; i++){
clickBoxs[i].onclick = function(){
console.log(i)
}
}
我們本來希望的是點擊不同的clickBox,顯示不同的i,但事實是無論我們點擊哪個clickBox,輸出的都是5。下麵我們來看下,如何用閉包搞定它。

function iteratorFactory(i){
var onclick = function(e){
console.log(i)
}
return onclick;
}
var clickBoxs = document.querySelectorAll('.clickBox')
for (var i = 0; i < clickBoxs.length; i++){
clickBoxs[i].onclick = iteratorFactory(i)
}
學習ES6的基本語法網址
ttps://segmentfault.com/a/1190000004365693

最後更新:2017-07-27 09:03:17

  上一篇:go  【沉澱】從網絡中間件到搜索,從移動開發到分布式計算平台,阿裏雲高級專家李睿博談自己的折騰路
  下一篇:go  webpack學習