prefer-object-has-own
禁止使用 Object.prototype.hasOwnProperty.call()
而更喜欢使用 Object.hasOwn()
一些该规则报告的问题可以通过 --fix 命令行选项 自动修复
编写如下代码很常见:
if (Object.prototype.hasOwnProperty.call(object, "foo")) {
console.log("has property foo");
}
这是一种常见的做法,因为有时 Object.prototype
上的方法可能不可用或重新定义(请参阅 no-prototype-builtins 规则)。
在 ES2022 中引入,Object.hasOwn()
是 Object.prototype.hasOwnProperty.call()
的更短的替代品:
if (Object.hasOwn(object, "foo")) {
console.log("has property foo")
}
规则详情
zblpFAyoEiDF1GS7EEgT+Fw+zDBsVLJNOcYSNQAXW6dSdz0JClE4rOOJ51S8csCM
/*eslint prefer-object-has-own: "error"*/
Object.prototype.hasOwnProperty.call(obj, "a");
Object.hasOwnProperty.call(obj, "a");
({}).hasOwnProperty.call(obj, "a");
const hasProperty = Object.prototype.hasOwnProperty.call(object, property);
h+1Jf/rEEE6yYiKhWnK/aHl9/UYIfowckm44qhmqvwwaWj0QX+JXnab7YJgxSmDw
/*eslint prefer-object-has-own: "error"*/
Object.hasOwn(obj, "a");
const hasProperty = Object.hasOwn(object, property);
何时不使用
78OT9lLxJ740/QW2B2Dxz/dgBKOa1Kbc4vUsfsIIN6WR3irpSYhfsMIIfxUcpw0xXS9lmTBGhAf7Ly35DCJBcHlgK7P5cEc1k+CQycp/cTQ=