禁止直接使用原型内置方法
注意: 此规则是
recommended
规则集的一部分。在
deno.json
中启用完整规则集{ "lint": { "tags": ["recommended"] } }
使用 Deno CLI 启用完整规则集
deno lint --tags=recommended
禁止直接使用 Object.prototype
的内置方法。
如果对象是通过 Object.create(null)
创建的,则它们没有指定的原型。当您假设对象具有来自 Object.prototype
的属性并尝试调用以下方法时,可能会导致运行时错误
hasOwnProperty
isPrototypeOf
propertyIsEnumerable
相反,始终建议从 Object.prototype
显式调用这些方法。
无效
const a = foo.hasOwnProperty("bar");
const b = foo.isPrototypeOf("bar");
const c = foo.propertyIsEnumerable("bar");
有效
const a = Object.prototype.hasOwnProperty.call(foo, "bar");
const b = Object.prototype.isPrototypeOf.call(foo, "bar");
const c = Object.prototype.propertyIsEnumerable.call(foo, "bar");