【JavaScript】 闭包 我战战兢兢的接触了它

源:http://www.liaoxuefeng.com

1、

注意这里用了一个“创建一个匿名函数立刻执行”的语法

(function (x) {
    return x * x;
})(3); // 9

理论上讲,创建一个匿名函数并立刻执行可以这么写:

function (x) { return x * x } (3);

但是由于JavaScript语法解析的问题,会报SyntaxError错误,因此需要用括号把整个函数定义括起来:

(function (x) { return x * x }) (3);

通常,一个立即执行的匿名函数可以把函数体拆开,一般这么写:

(function (x) {
    return x * x;
})(3);

2、
    //inital 有值就是inital没值就是 0

    var x = initial || 0;

3、
换句话说,闭包就是携带状态的函数,并且它的状态可以完全对外隐藏起来。

原文地址:https://www.cnblogs.com/oiliu/p/4705648.html