发表于: 2016-08-12 21:44:08

0 2224


今天完成的事情:看js原生

明天计划的事情:继续加强基础

遇到的问题:无

收获:

什么是自执行?


在JavaScript里,任何function在执行的时候都会创建一个执行上下文,因为为function声明的变量和function有可能只在该function内部,这个上下文,在调用function的时候,提供了一种简单的方式来创建自由变量或私有子function。


// 由于该function里返回了另外一个function,其中这个function可以访问自由变量i

// 所有说,这个内部的function实际上是有权限可以调用内部的对象。


function makeCounter() {

    // 只能在makeCounter内部访问i

    var i = 0;


    return function () {

        console.log(++i);

    };

}


// 注意,counter和counter2是不同的实例,分别有自己范围内的i。


var counter = makeCounter();

counter(); // logs: 1

counter(); // logs: 2


var counter2 = makeCounter();

counter2(); // logs: 1

counter2(); // logs: 2


alert(i); // 引用错误:i没有defind(因为i是存在于makeCounter内部)。



返回列表 返回列表
评论

    分享到