Do not access Object.prototype method ‘hasOwnProperty‘ from target object

调用 hasOwnProperty 报错:不要使用对象原型上的方法,因为原型的方法可能会被重写

复制代码
if (this.formData.selectFields.hasOwnProperty(selectField)) {
          delete this.formData.selectFields[selectField];
        } else {
          this.formData.selectFields[selectField] = true;
        }

出现这种报错是因为使用Vue.js启动项目会自动生成配置为与ESLint一起使用的样板

在ECMAScript5.1中,新增了 Object.create,它支持使用指定的 [[Prototype]] 创建对象。Object.create(null)是一种常见的模式,用于创建将用作映射的对象

Object.create(null) 创建的对象是一个空对象,在该对象上没有继承 Object.prototype 原型链上的属性或者方法,例如:toString(), hasOwnProperty()等方法

因为 no-prototype-builtins 规则不允许Object.prototype直接从对象调用方法,所以会导致这种错误

解决方法

可以通过使用call()函数来调用不属于本身this对象的方法:Object.prototype.hasOwnProperty.call( )

复制代码
if (
          Object.prototype.hasOwnProperty.call(
            this.formData.selectFields,
            selectField
          )
        ) {
          delete this.formData.selectFields[selectField];
        } else {
          this.formData.selectFields[selectField] = true;
        }

**call方法的使用 **

复制代码
call() 方法是预定义的 JavaScript 方法。

它可以用来调用所有者对象作为参数的方法。

通过 call(),您能够使用属于另一个对象的方法。
相关推荐
方见华Richard4 小时前
世毫九实验室技术优势拆解与对比分析(2026)
人工智能·交互·学习方法·原型模式·空间计算
方见华Richard1 天前
AGI安全三大方向机构对比清单(2025-2026)
人工智能·经验分享·交互·原型模式·空间计算
sg_knight1 天前
原型模式(Prototype)
python·设计模式·开发·原型模式
方见华Richard2 天前
递归对抗引擎RAE:AGI终极希望与内生安全范式革新,自指认知AI为碳硅共生必然主体
人工智能·交互·学习方法·原型模式·空间计算
方见华Richard2 天前
全球AGI实验室梯队标准清单(2026)
人工智能·经验分享·交互·原型模式·空间计算
方见华Richard2 天前
世毫九实验室RAE递归对抗引擎:技术与原理全解
人工智能·经验分享·交互·原型模式·空间计算
方见华Richard2 天前
递归对抗引擎RAE:世毫九重构AGI底层逻辑的终极范式与全维度价值极致解读
人工智能·交互·学习方法·原型模式·空间计算
方见华Richard3 天前
世毫九:思维是意义空间的几何运动的详细推导过程
人工智能·交互·学习方法·原型模式·空间计算
方见华Richard3 天前
世毫九认知几何学公式推导过程(严格数学构造)
人工智能·交互·学习方法·原型模式·空间计算
方见华Richard3 天前
《认知几何学:思维如何弯曲意义空间》补充材料
人工智能·经验分享·交互·原型模式·空间计算