参见英文答案 >
Test for existence of nested JavaScript object key48个
在javascript中,我经常想要访问可能不存在的对象的属性.
在javascript中,我经常想要访问可能不存在的对象的属性.
例如:
var foo = someObject.myProperty
但是,如果未定义someObject,则会抛出错误.访问可能为空的对象的属性的常规方法是什么,如果不存在则返回false或null?
在Ruby中,我可以做someObject.try(:myProperty).是否有JS等价物?
解决方法
我不认为这与JavaScript中的问题有直接的对应关系.但是我们可以写一些做同样事情的util方法.
Object.prototype.safeGet = function(key) { return this? this[key] : false; } var nullObject = null; console.log(Object.safeGet.call(nullObject,'invalid'));
这是JSFiddle:http://jsfiddle.net/LBsY7/1/