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

编写代码的时候,使用了eslint:

let obj = {};
obj.hasOwnProperty('xxx');

此时会显示标题错误。
大概的意思的:不要使用对象原型上的方法。因为原型的方法可能会重写。

解决方法

object.property.hasOwnProperty.call(obj,'属性')

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

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

当假定对象将包含来自Object.prototype 的属性时,这可能会导致错误。该规则防止直接从一个对象调用某些 Object.prototype 的方法。

对象可以具有属性,这些属性可以将 Object.prototype 的内建函数隐藏,可能导致意外行为或拒绝服务安全漏洞。例如,web 服务器解析来自客户机的 JSON 输入并直接在结果对象上调用 hasOwnProperty 是不安全的,因为恶意客户机可能发送一个JSON值,如 {“hasOwnProperty”: 1},并导致服务器崩溃.

为了避免这种细微的 bug,最好总是从 Object.prototype 调用这些方法。例如,foo.hasOwnProperty(“bar”) 应该替换为 Object.prototype.hasOwnProperty.call(foo, “bar”)。

Do not access Object.prototype method ‘hasOwnProperty‘ from target object相关推荐

  1. 通过 Object.prototype.toString.call() 进行类型判断

    为什么80%的码农都做不了架构师?>>>    首先看一段ECMA中对Object.prototype.toString的解释: Object.prototype.toString( ...

  2. 为什么用Object.prototype.toString.call(obj)检测对象类型?

    37 Essential JavaScript Interview Questions*,中有一道javascript题: 使用 typeof bar === "object" 检 ...

  3. JavaScript中Object.prototype.toString方法的原理

    在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法. <一>, ECMAScript 3  1. 在E ...

  4. 【js基础】理清Object、Object.prototype、Function、Function.prototype

    Object.prototype.toString.call(something) 上面这段代码一般被用来判断变量的类型,相信很多人都非常熟悉 今天coding时用到上面这段代码,突然想到 Objec ...

  5. 数据类型的判断 --Object.prototype.toString.call(obj)精准检测对象类型

    数据类型的判断 typeof typeof返回一个表示数据类型的字符串,返回结果包括:number.boolean.string.symbol.object.undefined.function等7种 ...

  6. 由Object.prototype.toString.call( )引发关于toString( )方法的思考

    引言 前端面试中有这么一道经典的问题,如何判断一个对象是否为数组? ES5提供了一个确定对象是否为数组的函数 Array.isArray(object); 复制代码 其中,object是必须的,表示要 ...

  7. Object.prototype.__proto__ 、Object.prototype和 Object.prototype.constructor

    Object.prototype.__proto__: 实体对象指向造它的构造函数的 prototype属性所指 的对象 ,实例的__proto__是引用构造函数的prototype属性所指对象, O ...

  8. JS中的toString、Object.toString、Object.prototype.toString

    不同类型值的toString方法: //Number const num = 123; num.toString(); // '123' (123).toString(); // '123' 整数必须 ...

  9. 【javaScript】Object.prototype.toString.call() 、 instanceof 以及 Array.isArray() 区别与优化层面的比较

    1. Object.prototype.toString.call() 每一个继承 Object 的对象都有 toString 方法,如果 toString 方法没有重写的话,会返回 [Object ...

最新文章

  1. C#按关闭按钮实现最小化,按ESC才关闭的实现【含系统消息大全】
  2. 赠书:啥是指标陷阱?很多就出现在你的身边!
  3. silverlight控件打印预览
  4. 将ListT集合用DataGridView展示
  5. javaoo-构造方法和添加方法
  6. 用哈希桶实现错位字组的分类(Group Anagrams)
  7. proteus里面没有stm32怎么办_使用C#编写STM32对接物联网平台IoTSharp发送遥测数据
  8. 《C和指针》——C语言字符串操作
  9. Facebook AI 提出10亿级数据规模的半监督图像分类模型,ImageNet测试精度高达81.2%!...
  10. tail 命令只查看日志中的关键字所在行信息
  11. linux 自动挂载usb设备,Raspberry Pi 自动挂载USB存储设备
  12. 2018数据可视分析挑战赛-二等奖作品及历年优秀作品
  13. centos7安装/卸载pip
  14. nginx 配置外网域名跳转到内网地址加端口的教程
  15. 互联网应用基础第五课:互联网即时通讯工具之QQ和微信的使用、淘宝客理解
  16. cmd输入光标消失解决
  17. 简单明了的普利姆算法
  18. opencv - viz 画出SLAM轨迹
  19. 市场周刊杂志市场周刊杂志社市场周刊编辑部2022年第6期目录
  20. C#设计模式(4)-Simple Factory Pattern

热门文章

  1. 发布一个持续集成的npm包
  2. cesium加载arcgis server地图服务
  3. 大学毕业4年-回顾和总结 9 -股权投资1年,给自己一个答卷 好狗狗 皇包车 职业梦 比呀比 易途8 创业有风险,投资
  4. Erlang运行时中的无锁队列及其在异步线程中的应用
  5. Android Jetpack简介
  6. java 打印gc_输出Java的GC信息
  7. 弦截法求方程f(x)=x^3-5x^2+16x-80=0的根
  8. 名画33 范宽《画选十八幅》
  9. node egg 本地配置https
  10. postgresql boolean字段与smallint字段的自动转换