再来看一个更常见的例子,了解下如果不用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 数组去重 (更加简单)
const o = Array.from(new Set(x));
异步加载 async await 程序按顺序执行
学习ES6的基本语法网址
ttps://segmentfault.com/a/1190000004365693u