<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] * * * * * >引入箭頭函數有兩個方面的作用: 更簡短的函數并且 `this` 與詞法作用域里的相同。 ### 1. 語法 `PS:argument 參數,簡寫為 arg` ~~~ <1>. (arg1, arg2, …, argN) => { 函數聲明 } // 這種情況用于不需要返回值,進行一組流程操作的時候; ~~~ ![](https://box.kancloud.cn/9333f852422406eb25c5b605e43e7984_393x165.png) ~~~ <2>. (arg1, arg2, …, argN) => 表達式(單一) /* 相當于:(arg1, arg2, …, argN) =>{ return 表達式; } 這個表達式所代表是的值,就是返回值; 如果加了花括號,就不會有返回值了,需要自己添加 return 語句。 */ ~~~ ![](https://box.kancloud.cn/ced0a930611710b4a8ec4973b27d59e0_252x235.png) ~~~ <4>. 當只有一個參數時,圓括號是可選的: ( 單一參數 ) => { 函數聲明 } 單一參數 => { 函數聲明 } <5>. 沒有參數的函數應該寫成一對圓括號。() => { 函數聲明 } , 更合適作為匿名函數 ~~~ >[success]如果要返回一個對象,簡寫形式為 ![](https://box.kancloud.cn/a23ca7f85338500b8a5a6fdc3cbc92a1_285x121.png) ### 2. 實例 >[info]例 1:普通函數體內的 this在執行過程中會被動態綁定,有時候會導致麻煩。如下就沒有得到預期的結果。 ![](https://box.kancloud.cn/7475344a1458f64950952b89847bcb33_541x366.png) >[info]例 2:箭頭函數不會創建自己的this;它使用封閉執行上下文的this值(即詞法作用域的 this)。 ![](https://box.kancloud.cn/e5198d9713367e110f6f96ba9724bf6b_563x312.png) >[info]例 3:箭頭函數體的閉包( i=0 是默認參數) ~~~ var Add = (i=0) => { return (() => (++i) ) }; var v = Add(); v(); //1 v(); //2 ~~~ >[info] 例 4:通過 call 或 apply 調用 ~~~ 由于 this 已經在詞法層面完成了綁定, 通過 call() 或 apply() 方法調用一個函數時, 只是傳入了參數而已,對 this 并沒有什么影響: var b = { base : 2 }; var adder = { base : 1, addThroughCall: function(a) { var f = v => v + this.base; return f.call(b, a); // 如果把這里的 b,改為 null 或者 undefined,輸出結果一樣 } }; console.log(adder.addThroughCall(1)); ~~~ >[info] 例 5:箭頭函數沒有 arguments 這個參數對象 ![](https://box.kancloud.cn/20c1b15a663bc99fde7c2db4a0f265c3_560x164.png) ~~~ 如果想要在不使用 arguments 的情況下獲取參數,就需要用 ES6的一個新特性: (...arg)=>{ //這里就可以通過 arg[n],來獲取參數 } ~~~ >[info] 例 6:new 操作后面不能用箭頭函數 ![](https://box.kancloud.cn/f2e6108ed622c40685f067d6d3d2ec44_511x106.png) >[info] 例 7:箭頭函數沒有 原型 ![](https://box.kancloud.cn/6e0fc5a8dfcda85660cfdb0ff1b504db_323x82.png)
                  <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>

                              哎呀哎呀视频在线观看