1. 程式人生 > 實用技巧 >prefer-arrow-callback (Rules) – Eslint 中文開發手冊 - Break易站

prefer-arrow-callback (Rules) – Eslint 中文開發手冊 - Break易站

[
  •   Eslint 中文開發手冊

    prefer-arrow-callback (Rules) - Eslint 中文開發手冊

    在命令列上的--fix選項可以自動修復一些被這條規則反映的問題。

    對於回撥或函式引數,箭頭函式可以成為函式表示式的有吸引力的替代方案。

    例如,箭頭函式會自動繫結到其周圍的範圍/上下文。這為顯式繫結函式表示式以實現類似行為提供了 ES6之前的標準替代方案。

    另外,箭頭功能是:

    不詳細,更容易推理。不管他們被呼叫的地點或時間,都可以詞法繫結。

    規則細節

    此規則定位用作回撥函式或函式引數的函式表示式。任何可以被箭頭函式取代而不改變結果的錯誤都會產生。

    以下示例將被標記:

    /* eslint prefer-arrow-callback: "error" */
    
    foo(function(a) { return a; }); // ERROR
    // prefer: foo(a => a)
    
    foo(function() { return this.a; }.bind(this)); // ERROR
    // prefer: foo(() => this.a)

    箭頭函式不會產生相同結果的例項將被忽略。

    以下示例不會被標記:

    /* eslint prefer-arrow-callback: "error" */
    /* eslint-env es6 */
    
    // arrow function callback
    foo(a => a); // OK
    
    // generator as callback
    foo(function*() { yield; }); // OK
    
    // function expression not used as callback or function argument
    var foo = function foo(a) { return a; }; // OK
    
    // unbound function expression callback
    foo(function() { return this.a; }); // OK
    
    // recursive named function callback
    foo(function bar(n) { return n && n + bar(n - 1); }); // OK

    選項

    通過選項物件訪問進一步控制此規則的行為。

    預設: { allowNamedFunctions: false, allowUnboundThis: true }

    allowNamedFunctions

    預設情況下{ "allowNamedFunctions": false },該boolean選項禁止使用命名函式作為回撥函式或函式引數。

    通過允許使用命名函式而不受限制,將此值更改為將true反轉此選項的行為。

    { "allowNamedFunctions": true } 不會標記以下示例:

    /* eslint prefer-arrow-callback: [ "error", { "allowNamedFunctions": true } ] */
    
    foo(function bar() {});

    allowUnboundThis

    預設情況下{ "allowUnboundThis": true },只要有問題的函式沒有被明確繫結,該boolean選項就允許包含的函式表示式this被用作回撥函式。

    設定false為該選項時,禁止將函式表示式作為回撥函式或函式引數完全使用,無一例外。

    { "allowUnboundThis": false } 將舉出以下例子:

    /* eslint prefer-arrow-callback: [ "error", { "allowUnboundThis": false } ] */
    /* eslint-env es6 */
    
    foo(function() { this.a; });
    
    foo(function() { (() => this); });
    
    someArray.map(function(itm) { return this.doSomething(itm); }, someObject);

    何時不使用它

    在尚未採用 ES6語言功能的環境中(ES3 / 5)。在 ES6 +環境中,允許在描述回撥或函式引數時使用函式表示式。

    進一步閱讀

    有關ES6箭頭函式的更多資訊版本此規則是在 ESLint 1.2.0.Resources 中引入的規則資源文件資源

  •   Eslint 中文開發手冊
    ]
  •   本文標題:prefer-arrow-callback (Rules) – Eslint 中文開發手冊 - Break易站轉載請保留頁面地址:https://www.breakyizhan.com/javascript/34534.html