Eslint参考手册
规则 | Rules
no-obj-calls
"extends": "eslint:recommended"
配置文件中的属性启用此规则。
ECMAScript 提供了几个用于原样使用的全局对象。其中一些对象看起来好像它们可能是构造函数,因为它们的大小写(如Math
和JSON
),但如果尝试将它们作为函数执行,则会引发错误。
在 ECMAScript的5规范 明确规定,双方Math
和JSON
不能调用:
Math 对象没有
[[Call]]
内部属性; 作为函数不可能调用 Math 对象。
ECMAScript 的2015年规范明确指出,Reflect
不得援引:
反射对象也没有
[[Call]]
内部方法; 作为函数调用 Reflect 对象是不可能的。
规则细节
这个规则不允许调用Math
,JSON
和Reflect
对象作为功能。
这个规则的错误代码示例:
/*eslint no-obj-calls: "error"*/
var math = Math();
var json = JSON();
var reflect = Reflect();
这个规则的正确代码示例:
/*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");
进一步阅读
- The Math Object 版本规则是在 ESLint 0.0.9.Resources 中引入的
- Rule source
- Documentation source
规则 | Rules相关

ESLint 是一个代码规范和错误检查工具,有以下几个特性。所有东西都是可以插拔的。你可以调用任意的 rule api 或者 formatter api 去打包或者定义 rule or formatter。任意的 rule 都是独立的。没有特定的 coding style,你可以自己配置。
主页 | https://eslint.org/ |
源码 | https://github.com/eslint/eslint |
发布版本 | 4.12.0 |