<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # ECMAScript 閉包(closure) **ECMAScript 最易讓人誤解的一點是,它支持閉包(closure)。** **閉包,指的是詞法表示包括不被計算的變量的函數,也就是說,函數可以使用函數之外定義的變量。** ## 簡單的閉包實例 在 ECMAScript 中使用全局變量是一個簡單的閉包實例。請思考下面這段代碼: ``` var sMessage = "hello world"; function sayHelloWorld() { alert(sMessage); } sayHelloWorld(); ``` 在上面這段代碼中,腳本被載入內存后,并沒有為函數 sayHelloWorld() 計算變量 sMessage 的值。該函數捕獲 sMessage 的值只是為了以后的使用,也就是說,解釋程序知道在調用該函數時要檢查 sMessage 的值。sMessage 將在函數調用 sayHelloWorld() 時(最后一行)被賦值,顯示消息 "hello world"。 ## 復雜的閉包實例 在一個函數中定義另一個會使閉包變得更加復雜。例如: ``` var iBaseNum = 10; function addNum(iNum1, iNum2) { function doAdd() { return iNum1 + iNum2 + iBaseNum; } return doAdd(); } ``` 這里,函數 addNum() 包括函數 doAdd() (閉包)。內部函數是一個閉包,因為它將獲取外部函數的參數 iNum1 和 iNum2 以及全局變量 iBaseNum 的值。 addNum() 的最后一步調用了 doAdd(),把兩個參數和全局變量相加,并返回它們的和。 這里要掌握的重要概念是,doAdd() 函數根本不接受參數,它使用的值是從執行環境中獲取的。 可以看到,閉包是 ECMAScript 中非常強大多用的一部分,可用于執行復雜的計算。 提示:就像使用任何高級函數一樣,使用閉包要小心,因為它們可能會變得非常復雜。
                  <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>

                              哎呀哎呀视频在线观看