Skip to content

no-caller

禁止使用arguments.caller和arguments.callee

为什么

在ECMAScript 5的严格模式下禁止使用。

建议

使用函数名代替arguments.callerarguments.callee

错误示例

js
[520, 1314, 666, 888, 5].map(function (n) {
  return !(n > 1) ? 1 : arguments.callee(n - 1) * n;
});
[520, 1314, 666, 888, 5].map(function (n) {
  return !(n > 1) ? 1 : arguments.callee(n - 1) * n;
});

正确示例

js
[520, 1314, 666, 888, 5].map(function factorial(n) {
  return !(n > 1) ? 1 : factorial(n - 1) * n;
});
[520, 1314, 666, 888, 5].map(function factorial(n) {
  return !(n > 1) ? 1 : factorial(n - 1) * n;
});

参考