闭包
1. 闭包
- 闭包
- Closure
- 有各种复杂的定义
- 但我们不管定义,只需要记住闭包出现的时机
- 内层作用域 访问它外层函数作用域的 变量/函数时,闭包就出现了
闭包的强大作用
var func = function (src) {
var img = new Image();
img.src = src;
};
func("http://www.xxx.com");
这里 img 有可能会在调用后被回收,导致还没能对 src 发出 http 请求
可以用闭包来解决,把 img 保存起来
var func = (function () {
var imgs = [];
return function (src) {
var img = new Image();
imgs.push(img);
img.src = src;
};
})();
func("http://www.xxx.com");