• prefer-arrow-callback (Rules) – Eslint 中文开发手册


    [
  •   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 中文开发手册
    ]
    转载请保留页面地址:https://www.breakyizhan.com/javascript/34534.html
  • 相关阅读:
    [CodeForces]Codeforces Round #429 (Div. 2) ABC(待补)
    About Me
    2018-06-14
    Codeforces Codeforces Round #484 (Div. 2) E. Billiard
    Codeforces Codeforces Round #484 (Div. 2) D. Shark
    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings
    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes
    Codeforces Avito Code Challenge 2018 D. Bookshelves
    Codeforces Round #485 (Div. 2) D. Fair
    Codeforces Round #485 (Div. 2) F. AND Graph
  • 原文地址:https://www.cnblogs.com/breakyizhan/p/13295828.html
Copyright © 2020-2023  润新知