<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] # 1. 函數閉包 閉包就是能夠讀取其他函數內部變量的函數,由于在 Javascript 語言中,只有函數內部的子函數才能讀取局部變量,因此可以把閉包簡單理解成 **定義在一個函數內部的函數**。所以,在本質上,閉包就是將函數內部和函數外部連接起來的一座橋梁。 閉包的用途: * 可以在函數外部讀取函數內部成員 * 讓函數內成員始終存活在內存中 示例: ```js function fn () { var count = 0 return { getCount: function () { console.log(count) }, setCount: function () { count++ } } } var fns = fn() fns.getCount() // => 0 fns.setCount() fns.getCount() // => 1 ``` 思考1: ```js var name = "The Window"; var object = { name: "My Object", getNameFunc: function () { console.log(this); // object return function () { console.log(this); // window return this.name; // 而這里的this是window對象 }; } }; console.log(object.getNameFunc()()); // The Window ``` 思考2: ```js var name = "The Window";   var object = {     name: "My Object", getNameFunc: function () { var that = this; console.log(this); // obeject return function () { console.log(this); // window console.log(that); // object return that.name; }; } }; console.log(object.getNameFunc()()); // My Object ``` # 2. 沙箱 示例1: ```js //沙箱:環境,黑盒,---在虛擬的世界中,模擬真實世界的場景,做實驗,實驗的結果和真實世界的結果一樣,但是不會影響真實的世界 //沙箱可以解決命名沖突的問題 //以后的代碼--->盡可能的放在沙箱中 var num=100; //沙箱的代碼 (function () { var num=10; // 不與全局的num沖突 num++; console.log(num);//11 })(); console.log(num);//100 ``` 示例2: ```js //沙箱可以解決命名沖突的問題 (function () { var x=10; function f1() { // 與下面的f1不沖突 } }()); (function () { var x=10; function f1() { } }()); ```
                  <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>

                              哎呀哎呀视频在线观看