猿问

关于《JavaScript语言精髓与编程实践》书中疑问。

var obj = {};  

 

function _in(obj, prop) {  

if (obj[prop]) return true;  

return false;  

}  

 

//检测不存在的属性  

alert( _in(obj, 'myProp') );  

 

//检测某些有值的属性,仍会返回 false  

var propertyNames = [0, '', [], false, undefined, null];  

for (var i=0; i<propertyNames.length; i++) {  

alert( _in(obj, propertyNames[i]) );  


alert( _in(obj, propertyNames[i]))这儿检测的为什么是有值属性呢?也应该和alert( _in(obj, 'myProp') );一样检测的不存在属性


白衣染霜花
浏览 455回答 1
1回答

30秒到达战场

0, '', [], false, undefined, null 这些值都会被转化为false所以如果用_in方法判断 一个object中&nbsp;如{prop1:0}是否有属性 prop1 会返回false
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答