Skip to content

Latest commit

 

History

History
33 lines (23 loc) · 1.12 KB

prefer-reflect-apply.md

File metadata and controls

33 lines (23 loc) · 1.12 KB

Prefer Reflect.apply() over Function#apply()

💼 This rule is enabled in the ✅ recommended config.

🔧 This rule is automatically fixable by the --fix CLI option.

Reflect.apply() is arguably less verbose and easier to understand. In addition, when you accept arbitrary methods, it's not safe to assume .apply() exists or is not overridden.

Fail

function foo() {}

foo.apply(null, [42]);
Function.prototype.apply.call(foo, null, [42]);
foo.apply(this, [42]);
Function.prototype.apply.call(foo, this, [42]);
foo.apply(null, arguments);
Function.prototype.apply.call(foo, null, arguments);
foo.apply(this, arguments);
Function.prototype.apply.call(foo, this, arguments);

Pass

function foo() {}

Reflect.apply(foo, null, [42]);