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