Do not access Object.prototype method ‘hasOwnProperty‘ from target object
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相关推荐
- 通过 Object.prototype.toString.call() 进行类型判断
为什么80%的码农都做不了架构师?>>> 首先看一段ECMA中对Object.prototype.toString的解释: Object.prototype.toString( ...
- 为什么用Object.prototype.toString.call(obj)检测对象类型?
37 Essential JavaScript Interview Questions*,中有一道javascript题: 使用 typeof bar === "object" 检 ...
- JavaScript中Object.prototype.toString方法的原理
在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法. <一>, ECMAScript 3 1. 在E ...
- 【js基础】理清Object、Object.prototype、Function、Function.prototype
Object.prototype.toString.call(something) 上面这段代码一般被用来判断变量的类型,相信很多人都非常熟悉 今天coding时用到上面这段代码,突然想到 Objec ...
- 数据类型的判断 --Object.prototype.toString.call(obj)精准检测对象类型
数据类型的判断 typeof typeof返回一个表示数据类型的字符串,返回结果包括:number.boolean.string.symbol.object.undefined.function等7种 ...
- 由Object.prototype.toString.call( )引发关于toString( )方法的思考
引言 前端面试中有这么一道经典的问题,如何判断一个对象是否为数组? ES5提供了一个确定对象是否为数组的函数 Array.isArray(object); 复制代码 其中,object是必须的,表示要 ...
- Object.prototype.__proto__ 、Object.prototype和 Object.prototype.constructor
Object.prototype.__proto__: 实体对象指向造它的构造函数的 prototype属性所指 的对象 ,实例的__proto__是引用构造函数的prototype属性所指对象, O ...
- JS中的toString、Object.toString、Object.prototype.toString
不同类型值的toString方法: //Number const num = 123; num.toString(); // '123' (123).toString(); // '123' 整数必须 ...
- 【javaScript】Object.prototype.toString.call() 、 instanceof 以及 Array.isArray() 区别与优化层面的比较
1. Object.prototype.toString.call() 每一个继承 Object 的对象都有 toString 方法,如果 toString 方法没有重写的话,会返回 [Object ...
最新文章
- C#按关闭按钮实现最小化,按ESC才关闭的实现【含系统消息大全】
- 赠书:啥是指标陷阱?很多就出现在你的身边!
- silverlight控件打印预览
- 将ListT集合用DataGridView展示
- javaoo-构造方法和添加方法
- 用哈希桶实现错位字组的分类(Group Anagrams)
- proteus里面没有stm32怎么办_使用C#编写STM32对接物联网平台IoTSharp发送遥测数据
- 《C和指针》——C语言字符串操作
- Facebook AI 提出10亿级数据规模的半监督图像分类模型,ImageNet测试精度高达81.2%!...
- tail 命令只查看日志中的关键字所在行信息
- linux 自动挂载usb设备,Raspberry Pi 自动挂载USB存储设备
- 2018数据可视分析挑战赛-二等奖作品及历年优秀作品
- centos7安装/卸载pip
- nginx 配置外网域名跳转到内网地址加端口的教程
- 互联网应用基础第五课:互联网即时通讯工具之QQ和微信的使用、淘宝客理解
- cmd输入光标消失解决
- 简单明了的普利姆算法
- opencv - viz 画出SLAM轨迹
- 市场周刊杂志市场周刊杂志社市场周刊编辑部2022年第6期目录
- C#设计模式(4)-Simple Factory Pattern
热门文章
- 发布一个持续集成的npm包
- cesium加载arcgis server地图服务
- 大学毕业4年-回顾和总结 9 -股权投资1年,给自己一个答卷 好狗狗 皇包车 职业梦 比呀比 易途8 创业有风险,投资
- Erlang运行时中的无锁队列及其在异步线程中的应用
- Android Jetpack简介
- java 打印gc_输出Java的GC信息
- 弦截法求方程f(x)=x^3-5x^2+16x-80=0的根
- 名画33 范宽《画选十八幅》
- node egg 本地配置https
- postgresql boolean字段与smallint字段的自动转换