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

no-obj-calls

"extends": "eslint:recommended"配置文件中的属性启用此规则。

ECMAScript 提供了几个用于原样使用的全局对象。其中一些对象看起来好像它们可能是构造函数,因为它们的大小写(如MathJSON),但如果尝试将它们作为函数执行,则会引发错误。

ECMAScript的5规范 明确规定,双方MathJSON不能调用:

Math 对象没有[[Call]]内部属性; 作为函数不可能调用 Math 对象。

ECMAScript 的2015年规范明确指出,Reflect不得援引:

反射对象也没有[[Call]]内部方法; 作为函数调用 Reflect 对象是不可能的。

规则细节

这个规则不允许调用MathJSONReflect对象作为功能。

这个规则的错误代码示例:

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

var math = Math();
var json = JSON();
var reflect = Reflect();

这个规则的正确代码示例:

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

function area(r) {
    return Math.PI * r * r;
}
var object = JSON.parse("{}");
var value = Reflect.get({ x: 1, y: 2 }, "x");

进一步阅读

扫码关注腾讯云开发者

领取腾讯云代金券