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

这篇具有很好参考价值的文章主要介绍了Do not access Object.prototype method ‘hasOwnProperty‘ from target object。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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方法的使用 **文章来源地址https://www.toymoban.com/news/detail-646443.html

call() 方法是预定义的 JavaScript 方法。

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

通过 call(),您能够使用属于另一个对象的方法。

到了这里,关于Do not access Object.prototype method ‘hasOwnProperty‘ from target object的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Gitee push错误 Access denied: You do not have permission to push to the protected branch ‘master‘ via

    首次使用gitee向别人的repo提交代码,发现出现权限问题无法push到master,提交命令如下: 错误信息如下: 查看repo的分支信息,发现master分支是保护分支,管理员才能push,而我的账户是开发者权限。只能提交到feature,或自建的分支。  提交到feature分支的命令:

    2024年02月12日
    浏览(41)
  • 企业微信{“errcode“:60020,“errmsg“:“not allow to access from your ip, hint: [1681129678500613099333714]

    配置企业微信小程序时,报了如下错误:企业微信{“errcode”:60020,“errmsg”:“not allow to access from your ip, hint: [1681129678500613099333714], from ip: xxx.xx.xxx.165, more info at https://open.work.weixin.qq.com/devtool/query?e=60020”} 解决方案: 1、找到【应用管理】-【企业可信IP】-【配置】-将上面报错

    2024年02月11日
    浏览(41)
  • Docker登陆遇到Error response from daemon: pull access denied for test-image, repository does not exist··

      错误信息:Error response from daemon: pull access denied for test-image, repository does not exist or may require \\\'docker login\\\': denied: requested access to the resource is denied. 解决方法:打开docker desktop,再运行docker login即可

    2024年02月07日
    浏览(39)
  • Object.prototype.toString.call个人理解

    有人说,typeof不行吗,的确,typeod可以用来判断部分的变量的类型,但是仅仅是部分罢了。 typeof 无法区别 null 和 {“num”:1} 这两个变量值的类型,正确的类型应该是Null和Object,但是typeof对于它们的输出却都是: 因此,需要一个合适的工具来识别各类变量的变量类型,Objec

    2024年01月24日
    浏览(32)
  • 【typeof instanceof Object.prototype.toString constructor区别】

    它返回的是一个字符串,表示未经过计算的操作数的类型 typeof操作符适合对基本数据类型以及function的检测进行使用,当然null除外,而对于引用数据类型,就比如说Array 和 Object等它是不适用的。 用于检测一个对象在其原型链中中是否存在一个构造函数的prototype属性 左操作数

    2024年02月10日
    浏览(33)
  • Object.prototype.toString为什么要加.call

    因为Array和Function等的toString方法都重写了,只有Object的没有被重写,所以只有Object.prototype才可以判断数据类型 如果不加.call()的话,this指向为Object,Object的数据类型自然是Object,所以不管判断啥都是Object; 添加call之后,改变this指向arr.才能得到正确的类型结果 理论上使用ap

    2024年04月17日
    浏览(29)
  • idea报错“Static methods in interface require -target:jvm-1.8”

    如题,在 idea 中跑 java 、scala 混编代码时,出现上面的错误。 问题的原因很明显是 idea 中的 jdk 版本设置有问题,针对性作如下排查: 检查项目的 java 版本 在 File - Project Settings 中,检查 检查idea的 java 版本 在 File - Settings 中,检查 在 Additional compiler options 中输入 -target:jvm-

    2024年02月09日
    浏览(31)
  • 对接企业微信机器人报错:{\“errcode\“:60020,\“errmsg\“:\“not allow to access from your ip, hint: [169917845713115

    Prometheus+altermanager对接企业微信机器人报错内容: 解决方案:企业微信机器人添加 企业可信IP 即可! 但是但是,第一次配置可信IP地址,需要先配置 设置接收消息服务器URL ,步骤如下: 打开一台有公网IP的服务器,进行下面操作: 共修改三处配置,如下 执行 wechat.py 脚本,

    2024年02月05日
    浏览(28)
  • js判断类型:typeof Object.prototype.toString instanceof constructor有什么区别?一文讲清楚

    相信很多小伙伴在使用js的过程中,经常会需要对js的数据类型进行判断,而js中可以对数据类型进行判断的方法有很多种,最常见的有typeof、Object.prototype.toString、instanceof、constructor这四种,那么他们有什么区别呢? 目录 js数据类型 typeof 为啥typeof会将null判断为object Object.pr

    2024年02月11日
    浏览(24)
  • Vue3接口数据报错TypeError: target must be an object

    🔥🔥🔥 欢迎关注csdn前端领域博主: 前端小王hs 🔥🔥🔥 email: 337674757@qq.com 🔥🔥🔥 前端交流群: 598778642 意思是返回的数据类型得是对象 报错的原因是在接口的返回数据中定义错了 报错原因如下: 改正

    2024年02月13日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包