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(),您能够使用属于另一个对象的方法。
相关推荐
江畔柳前堤1 天前
具身智能全景深度指南(2026年9月版):从“会聊天的AI“到“能干活的机器“
大数据·javascript·图像处理·人工智能·分布式·智慧城市·原型模式
神奇霸王龙7 天前
Codex MCP GA 实测:Qwen / GLM / Kimi / DeepSeek / MiniMax 调度 Codex 沙箱的真实成本
人工智能·ai·agent·ai编程·原型模式·mcp
葡萄城技术团队8 天前
如何通过 JSON 数据源 / Web API 快速构建轻量级报表(Report)?
前端·json·原型模式
Leo.yuan8 天前
2026国内数据治理平台选型指南:从ETL到数据质量的一体化路径
原型模式
一个游离的指针22 天前
JS中的对象的相关概念
开发语言·javascript·原型模式
码哥DFS23 天前
构造函数、实例对象、对象原型 ----三者关系
开发语言·javascript·原型模式
lincats25 天前
AI Agent 工程化六层架构:从 Prompt 到 Production
人工智能·架构·prompt·知识图谱·原型模式·vibecoding·grillme
叶总没有会1 个月前
5.1知识库概念进阶
java·人工智能·spring·阿里云·ai·原型模式
lincats1 个月前
智能体工程 vs 软件工程:计算机系那套课程,还能适应 AI 时代吗?
人工智能·软件工程·原型模式·vibecoding·claudecode·grillme
ltqvibe1 个月前
数据中台为什么走不通——本体语义给出的替代路径
人工智能·原型模式·本体语义平台