84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
如何判断JS对象是否拥有某属性?
How to determine whether a JS object has a certain attribute? -PHP Chinese website Q&A-How to determine whether a JS object has a certain attribute? -PHP Chinese website Q&A
Let’s take a look and learn.
JS对象是否拥有某属性
两种方式,但稍有区别
1,in 运算符
var obj = {name:'jack'}; alert('name' in obj); // --> true alert('toString' in obj); // --> true
可看到无论是name,还是原形链上的toString,都能检测到返回true。
2,hasOwnProperty 方法
var obj = {name:'jack'}; obj.hasOwnProperty('name'); // --> true obj.hasOwnProperty('toString'); // --> false
原型链上继承过来的属性无法通过hasOwnProperty检测到,返回false。
需注意的是,虽然in能检测到原型链的属性,但for in通常却不行。
当然重写原型后for in在IE9/Firefox/Safari/Chrome/Opera下是可见的。见:for in的缺陷
How to determine whether a JS object has a certain attribute? -PHP Chinese website Q&A-How to determine whether a JS object has a certain attribute? -PHP Chinese website Q&A
Let’s take a look and learn.
JS对象是否拥有某属性
两种方式,但稍有区别
1,in 运算符
可看到无论是name,还是原形链上的toString,都能检测到返回true。
2,hasOwnProperty 方法
原型链上继承过来的属性无法通过hasOwnProperty检测到,返回false。
需注意的是,虽然in能检测到原型链的属性,但for in通常却不行。
当然重写原型后for in在IE9/Firefox/Safari/Chrome/Opera下是可见的。见:for in的缺陷