阅读829 返回首页    go 微软 go windows


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学习