博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
判断JS对象是否拥有某属性
阅读量:6036 次
发布时间:2019-06-20

本文共 425 字,大约阅读时间需要 1 分钟。

两种方式,但稍有区别

 

1.in 运算符

 

Js代码

var obj = {name:'jack'};

alert('name' in obj); // --> true
alert('toString' in obj); // --> true

 

 可看到无论是name,还是原形链上的toString,都能检测到返回true。

 

2.hasOwnProperty 方法

 

Js代码

var obj = {name:'jack'};

obj.hasOwnProperty('name'); // --> true
obj.hasOwnProperty('toString'); // --> false

原型链上继承过来的属性无法通过hasOwnProperty检测到,返回false。

需注意的是,虽然in能检测到原型链的属性,但for in通常却不行。

当然重写原型后for in在IE9/Firefox/Safari/Chrome/Opera下是可见的。

 

转载地址:http://tjohx.baihongyu.com/

你可能感兴趣的文章
海外华人华侨音乐家汇聚2019上海侨界新年音乐会
查看>>
全国计算机二级考级即将开始,你准备好了吗
查看>>
博客求职简历上用javascript做个定位微地图,面试通过
查看>>
美丽的诗句 撩妹首选哦!
查看>>
Vue 2.0 构建单页应用最佳实战
查看>>
JTalk Online:面试官教你快速成为 leader 最欣赏的技术人
查看>>
Java并发编程笔记之FutureTask源码分析
查看>>
使用LeanCloud快速开发一款小程序
查看>>
MMA冠军Rory MacDonald:比特币现金(BCH)是真正的比特币
查看>>
适配器模式
查看>>
[译] 在 Laravel 应用程序之间共享数据库
查看>>
Koa:核心探秘与入坑指北
查看>>
还在用JSON? Google Protocol Buffers 更快更小 (实践篇)
查看>>
探索 vue-spa 全家桶项目,解析配置,目录结构,路由以及状态管理的实现,附源码
查看>>
OpenStack安装(一) KeyStone模块
查看>>
Java锁之ReentrantReadWriteLock
查看>>
这是一个起点,没有终点 . . .
查看>>
更优雅的使用 Parcel 进行前端项目的打包
查看>>
坑系列 --- 重构过程中的过度设计
查看>>
iOS控件 UICollectionView
查看>>