在ES5时代,通常使用函数 return 嵌套函数实现闭包,这里我就不细说了,可参考《Javascript闭包——懂不懂由你,反正我是懂了》,《什么是闭包,我的理解》。
在ES6时代,我们可以利用let 来很方便的实现闭包,先来看两段代码:
var arr=[];
for(var i=0;i<10;i++){
arr.push(()=>i)
}
console.log(arr[2]()) //10
var arr=[];
for(let i=0;i<10;i++){
arr.push(()=>i)
}
console.log(ar