零基础轻松学JavaScript闭包
什么是闭包
闭包的定义
闭包是指那些能够访问自由变量的函数。自由变量是指在函数中使用,但既不是函数参数,也不是函数的局部变量的变量。
闭包 = 函数 + 函数能够访问的自由变量
闭包的作用
闭包主要有以下两个作用:
-
延长外部作用域中变量的声明周期。当一个函数返回了一个内部函数后,内部函数会继续保持对外部函数的作用域的引用,
这个引用就叫做闭包。闭包通过保持引用关系,使得外部函数执行完后,其内部变量以及状态依然能够被保持下来。 -
在JS中实现模块化开发。
如何使用闭包
实现顺序执行的定时器
通过闭包,可以让定时器依次执行。示例代码如下:
function runner() {
for (var i = 0; i < 5; i++) {
(function(j) {
setTimeout(function() {
console.log(j);
}, j * 1000);
})(i);
}
}
runner();
上述代码中,通过使用立即执行函数来保留定时器执行时的i的值,从而达到依次执行的目的。
实现模块化开发
通过闭包,可以实现模块化开发,避免全局变量污染等问题。示例代码如下:
var moduleA = (function() {
var count = 0;
return {
increaseCount: function() {
count++;
},
getCount: function() {
return count;
}
};
})();
上述代码中通过使用立即执行函数返回了一个对象,对象中保存了count变量的值和两个方法。通过闭包,count变量的值可以在模块内部进行读写,外部无法直接访问,不会对全局命名空间造成影响。
结语
通过本篇攻略,你已经初步了解了什么是闭包、闭包的作用,以及如何使用闭包,在实际开发中遇到问题时,可以结合代码进行实践操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:零基础轻松学JavaScript闭包 - Python技术站