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

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

  

方式,但稍有区别

1,in 运算符

1

2

3

var obj = {name:'jack'};

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

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

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

 

2,hasOwnProperty 方法

1

2

3

var obj = {name:'jack'};

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

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

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

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

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

转载于:https://www.cnblogs.com/FineDay/articles/3547767.html

你可能感兴趣的文章
lucene3.6.0的文档评估机制
查看>>
ZOJ 3822 Domination DP
查看>>
阿里云的服务器内网互通的前提条件
查看>>
document/window的基础知识
查看>>
复习事件委托
查看>>
wordpress 如何防止盗链
查看>>
请大家一定善用emule!
查看>>
Educational Codeforces Round 13 B. The Same Calendar 水题
查看>>
纠正部分Linux初学者对ctime的误解
查看>>
shell命令快捷键
查看>>
树链剖分(模板)
查看>>
c输出格式
查看>>
mod(%)之规律(除数与被除数的正负分析)
查看>>
C#编程(三十六)----------元组
查看>>
Django 第十课 4.【ORM查询操作】
查看>>
ffmpeg实战系列——001
查看>>
采样器----Debug Sampler
查看>>
ifup / ifdown eth0 / eno1 reports unknown interface when it exists!
查看>>
ListCtrl的多行删除
查看>>
[bzoj2456]mode
查看>>