回覆列表
  • 1 # 我是阿嘛

    想了一下,大概有以下幾種情況吧:

    不支援箭頭函式的環境

    目前支援箭頭函式的環境畢竟還不多,僅 Safari、Chrome、Firefox 較新版本,Microsoft Edge、NodeJS 4.x、NodeJS 6.x 支援。IE 全系列都不支援。

    在函數里面需要使用 this 變數的時候

    箭頭函式中沒有自己的 this 變數,在箭頭函式內部呼叫的 this 實際上是函式作用域之外的 this,所以如果對 this 有呼叫需求,就不可以用箭頭函式,比如給 dom 繫結事件:

    document.body.addEventListener( "click", function() {

    this.setAttribute( "clicked", 1 ); // 這個 this 指向 document.body

    }, false );

    document.body.addEventListener( "click", () => {

    console.log( this ); // this 指向 window

    }, false );

    3. 在函數里面需要呼叫內部 arguments 的時候

    箭頭函式沒有自己的 arguments 變數,所以如果函式內部要呼叫 arguments 變數,不可以使用箭頭函式。但是也可以透過一些其他方式解決,比如:

    const foo = ( ...args ) => {

    console.log( args ); // args 和 function 函式的 arguments 類似

    };

  • 中秋節和大豐收的關聯?
  • 挪威有哪些特色呢?