js闭包

js闭包

函数外部可以获取到函数内部定义的变量,这个叫做闭包。这个例子中,就是fn2, 即内部函数。

闭包的特点是,它能“记住”自己诞生的全局作用域/父级作用域中的环境。比如fn2记住了自己诞生的环境是fn1. 本质上,闭包就是函数内部和函数外部的链接桥梁。

使用闭包需要小心内存泄漏问题。最后可以将inc置为null.

IIFE: 定义函数之后,加上(), 表示立即调用。

常用的两种写法:

(function(){})();
(function(){}());

通常情况下,写自执行函数的时候,前面可以加个叹号,避免前面语句没有加分号导致报错。

IIFE可以减少对全局变量的污染

var add = (function () {
    var count = 0;
    return {
        return ++count;
    }
})();

闭包的经典错误:

解决方案:

下一篇

发表回复

*您的电子邮件地址不会被公开。必填项已标记为 。

*
*