JavaScript判断对象是否存在某个属性或者方法,常用方法有两种hasOwnPropertyin

hasOwnProperty是Object原型对象上的一个方法,用来判断对象自身属性中是否具有指定的属性。

这个方法可以用来检测一个对象是否含有特定的自身属性;和 in 运算符不同,该方法会忽略掉那些从原型链上继承到的属性。

// eslint-disable-next-line no-new-object
const obj = new Object();
obj.name = 'myObject';console.log(obj.hasOwnProperty('name')); // true
console.log(obj.hasOwnProperty('toString')); // false
console.log(obj.hasOwnProperty('hasOwnProperty')); // falseconsole.log('name' in obj); // true
console.log('toString' in obj); // true

MDN上指出,JavaScript 并没有保护 hasOwnProperty 这个属性名,可以将任意对象的一个属性命名为hasOwnProperty,这样一来就无法使用原型对象上的hasOwnProperty方法了。解决办法,直接使用原型链上的hasOwnProperty方法:

// 可以直接使用原型链上真正的 hasOwnProperty 方法
({}).hasOwnProperty.call(obj, 'name'); // true
// 也可以使用 Object 原型上的 hasOwnProperty 属性
Object.prototype.hasOwnProperty.call(obj, 'name'); // true

推荐使用第二种方式。

判断对象是否存在某个属性相关推荐

  1. es6 对象中是否有键值_js/es6判断对象是否为空,并判断对象是否包含某个属性...

    js判断对象为空以及有好几种方法了,但是个人觉得不是特别方便. 比如: 1.把对象通过 JSON.stringify 转为字符串,再判断字符串是否等于 " {} " 2.for i ...

  2. js判断html存不存在某个属性,javascript如何判断对象是否存在某属性?

    javascript判断对象是否存在某属性有三种方法,三种方式各有优缺点,不同的场景使用不同的方式,有时还需要结合使用,比如遍历自身属性的时候,就会把 for ··· in ···和 hasOwnPr ...

  3. 【python初级】hasattr函数判断对象是否包含某属性

    [python初级]hasattr函数判断对象是否包含某属性 1.背景 2.语法 3.示例 1.背景 hasattr函数是python的内置函数,类似print函数一样. hasattr函数用于判断对 ...

  4. java 如何判断对象内的某个属性是空

    朋友给我说了这个问题,第一反应是a.xx==null. 朋友给我说错了,应该用反射,于是我总结了一下为什么要用反射. 我认为有两点:1.你不知道这个对象是什么类型,如果是int类型,而int类型又不能 ...

  5. python判断对象是否有属性

    判断类对象类型,是否有包含属性: class FooClass:passk = FooClass() k.append =12 try:# 判断属性if hasattr(k, 'append'):pr ...

  6. JavaScript 判断对象中是否有某属性

    一.点( . )或者方括号( [ ] ) 通过点或者方括号可以获取对象的属性值,如果对象上不存在该属性,则会返回undefined.当然,这里的"不存在"指的是对象自身和原型链上都 ...

  7. java判断对象无数据_java利用反射机制判断对象的属性是否为空以及获取和设置该属性的值...

    1.java利用反射机制判断对象的属性是否为空: Map validateMap = new LinkedHashMap(); validateMap.put("serial", ...

  8. 获取对象的属性,并且判断对象属性是否存在

    (1)获取对象的属性,并且判断对象属性是否存在 举例: let test = {name:'22',age:67,sex:'man'}; 获取age属性值: 简单写法: if(test &&a ...

  9. 判断 Python 对象是否包含某个属性的方法

    先创建两个类,判断类的属性是否存在: class Foo(object):def __init__(self):super(Foo, self).__init__()self.is_whole = 1 ...

最新文章

  1. Python_note3 基本数据类型+time库使用
  2. pytorch 笔记:torchsummary
  3. 杭电1232畅通工程
  4. 湖人豪华助教团散伙 德帅身边恐仅剩两名帮手
  5. react-native 热更新react-native-pushy集成遇到的问题
  6. excel导入linux乱码怎么解决方法,,请大家都来看下,Excel导入有乱码?原因出在哪里?应该怎么解决?...
  7. TensorFlow2.0:tensorboard使用
  8. [置顶]       webservice系列1---基于web工程上写一个基本数据类型的webservice
  9. MS Project的开源替代品 OpenProj
  10. 神经网络是不是分类算法,人工神经网络分类算法
  11. Windows:电源计划:隐藏在深处的卓越性能,Get正确打开方式
  12. iphone导出视频 无法连接到设备_爱思助手无法识别设备或者连接超时解决办法...
  13. 【长文】前端需要了解的计算机网络知识
  14. C语言经典69题(又易到难)每日更新5道题
  15. 【Ubuntu安装后基本配置】
  16. 动态规划-剪绳子问题
  17. Cocos creator 导入 tiled map地图资源,cocos 显示地图错乱偏移
  18. 使用spark处理天气数据并可视化
  19. WIN7系统添加python的pip环境变量
  20. 第十六届全国大学生智能车竞赛线上总决赛比赛时间与直播链接

热门文章

  1. 张亚勤:PC之外的争夺战
  2. C# ReaderWriterLockSlim类
  3. 如何使用 abp 创建 module 并应用单独的数据库迁移
  4. 推荐:Flowchart 一种通过文本方式描述的流程图
  5. 如何限制并发的 异步IO 请求数量?
  6. 微软认真聆听了开源 .NET 开发社区的炮轰: 通过CLI 支持 Hot Reload 功能
  7. 由社区推动的 .NET 6 新 API
  8. WPF实现下拉框带图文和水印
  9. asp.net core 从 3.1 到 5.0
  10. 国际化组件 Unicode (ICU) 函数库