<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                **作用域鏈** **詞法作用域** 函數只會看到該變量的最終狀態. 利用閉包突破作用域鏈 ![](https://box.kancloud.cn/6311678c6262538fad6de94627161348_241x211.png) ![](https://box.kancloud.cn/8d4680d68269171d114316c0d5069d1a_223x219.png) ![](https://box.kancloud.cn/7d7be18dece035ed8085e9e3bb52e17f_170x253.png) _________________________ ![](https://box.kancloud.cn/0b7c7a210ca39286c03b1b7e36b93531_155x183.png) 這個n屬于全局,該函數后來升為全局函數,保留有對f()作用域的訪問權。 如果一個函數需要在其父級函數返回之后留住對父級作用域的鏈接的話,就必須要為此建立一個閉包。 函數所綁定 的是作用域本身,而非該作用域中的變量或變量當前所返回的值。 ![](https://box.kancloud.cn/fea668e567a1c04d8e232bde53f9295d_154x151.png) ~~~ function f() { var a = []; var i; for (i = 0; i < 3; i++) { a[i] = function() { return i; } } return a; } var a=f(); alert(a[1]()); 均為3. ~~~ ~~~ function f() { var a = []; var i; for (i = 0; i < 3; i++) { a[i] = (function(x) { return function(){ return x; } })(i); } return a; } var a=f(); console.log(a[0]()); console.log(a[1]()); console.log(a[2]()); ~~~ ~~~ function f() { function makeClosure(x) { return function*() { return x; } } var a = []; var i; for (i = 0; i < 3; i++) { a[i] = makeClosure(i); } return a; } ~~~ **setvalue/getvalue** 所有一切都是通過一個匿名函數來實現的,兩個全局函數,來確保局部變量secret的不可直接訪問性。 ~~~ var getValue, setValue; (function() { var secret = 0; getValue = function() { return secret; }; setValue = function(v) { secret = v; }; })() getValue(); //0; //setValue(345); //getValue(); //345 ~~~ ______________ ~~~ function setup(x) { var i = 0; return function() { return x[i++]; }; } var next=setup(['a','b','c']); next() "a" next() "b" next() "c" ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看