规则详情

此规则定位用作回调或函数参数的函数表达式。任何可以被箭头函数替换而不改变结果的东西都会产生错误。

This rule locates function expressions used as callbacks or function arguments. An error will be produced for any that could be replaced by an arrow function without changing the result.

9KN1UqIh8T+OzytoL0bqGw77Jtd+u/IVqcyRVpq/M27X3UxCJmub8AkxD5pASLN+vJvH0bqFuYdUyDPZnc5PHiKHDvifc6sPyxdA5I8C53ZEjCeGllUuO+LDYYMFsI3CErEY6ICMRW8Ipw6IYrxrIQ==

/* 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)

fwsyaNlZynV+d6S3zHlfb3AxX9DJFy3yGTG8MJxHOZ66y1RG9KjY3KHeIufE3DmrKC0+KFN1cBkrSa6i3jIqGb+kaATzYXyylmTGVjHrb8gDW8IoBkDTG/JWGQNBBKx5x1Mbt9K2g7z+xTBBgjuTy8zFylGAb0q0TQ0mlZzHhBXliM4WoDMPIIlJ05gEiEQrXrzk/rs+2w/FhitwzZZZZuosMhim26xP9zSC6ubQ8YU=

PZKGr4waj54O5tOHT3fdeW0+oyALAGPPqq9T8FueWWMjtobmzVb18scruwOGncod133lZu5QwLisvF/+49H+Y9ero+RIPh5ghnT8Y5lMzd/B76En73g58NxAbWFHxyVG2BSfhT7/ogxYSNytmrhJg5EoUJtscSWekM6oIHl/9GU=

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