美文网首页
js---立即执行函数及闭包

js---立即执行函数及闭包

作者: lewis2017 | 来源:发表于2019-08-28 15:01 被阅读0次

    讲解透彻:
    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Closures

    每个闭包都有它自己的词法环境,闭包内多个函数,共享一个环境,该共享环境创建于一个立即执行的匿名函数体内
    、、、
    var Counter = (function() {
    var privateCounter = 0;
    function changeBy(val) {
    privateCounter += val;
    }
    return {
    increment: function() {
    changeBy(1);
    },
    decrement: function() {
    changeBy(-1);
    },
    value: function() {
    return privateCounter;
    }
    }
    })();

    console.log(Counter.value()); /* logs 0 /
    Counter.increment();
    Counter.increment();
    console.log(Counter.value()); /
    logs 2 /
    Counter.decrement();
    console.log(Counter.value()); /
    logs 1 */
    、、、
    由上创建的两个计数器,请注意两个计数器 Counter1 和 Counter2 是如何维护它们各自的独立性的。每个闭包都是引用自己词法作用域内的变量 privateCounter ,每次调用其中一个计数器时,通过改变这个变量的值,会改变这个闭包的词法环境。然而在一个闭包内对变量的修改,不会影响到另外一个闭包中的变量。

    相关文章

      网友评论

          本文标题:js---立即执行函数及闭包

          本文链接:https://www.haomeiwen.com/subject/jlopectx.html