首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

no-caller

不可能使用arguments.callerarguments.callee进行几次代码优化。在未来的JavaScript版本中它们已被弃用,并且在严格模式下禁止在ECMAScript 5中使用它们。

代码语言:javascript
复制
function foo() {
    var callee = arguments.callee;
}

规则细节

此规则旨在阻止使用已弃用和次优代码,但不允许使用arguments.callerarguments.callee。因此,它会发出警告时arguments.callerarguments.callee被使用。

此规则的错误代码示例:

代码语言:javascript
复制
/*eslint no-caller: "error"*/

function foo(n) {
    if (n <= 0) {
        return;
    }

    arguments.callee(n - 1);
}

[1,2,3,4,5].map(function(n) {
    return !(n > 1) ? 1 : arguments.callee(n - 1) * n;
});

此规则的正确代码示例:

代码语言:javascript
复制
/*eslint no-caller: "error"*/

function foo(n) {
    if (n <= 0) {
        return;
    }

    foo(n - 1);
}

[1,2,3,4,5].map(function factorial(n) {
    return !(n > 1) ? 1 : factorial(n - 1) * n;
});

版本

这条规则是在ESLint 0.0.6中引入的。

资源

扫码关注腾讯云开发者

领取腾讯云代金券