no-prototype-builtins
禁止直接调用Object.prototype的方法
为什么
在js中Object是所有类型的基类,理所当然可以调用Object上的实例方法
但有些对象可能没有从Object.prototype继承属性,对象可能有属性覆盖Object.prototype的内置方法,直接调用就很可能出问题。
建议
应该总是从Object.prototype调用这些方法。
错误示例
js
const foo = {};
foo.hasOwnProperty('bar');
const foo = {};
foo.hasOwnProperty('bar');
正确示例
js
const foo = {};
Object.prototype.hasOwnProperty.call(foo, 'bar');
const foo = {};
Object.prototype.hasOwnProperty.call(foo, 'bar');