js闭包一直是比较难说明白的,至少博主是一直都没弄明白,直到最近复习js,深入看了看执行上下文(博主写的介绍执行上下文),才慢慢开始理解闭包的含义了。
闭包可以说是由于js运行机制而产生的一个特点,是一种现象:内部的函数可以访问到外部函数的作用域。
MDN在闭包解释中提到:每当函数被创建,就会在函数生成时生成闭包。我认为这个理解最直接。
按照这个理解,我们来测试一下:
function a(){
var x =1
return function(){
x++
console.log(x)
}
}
var add = a()
add()
add()
输出为 2 ,3
我们可以利用闭包来干什么呢
这里博主看到篇写闭包应用很不错的文章,大家可以去看看。
博主:二奎,文章名:js闭包应用