【发布时间】:2014-06-22 05:42:23
【问题描述】:
我正在使用具有我需要测试的嵌套属性的 javascript 对象,例如
myObject = {
'some' : {
'nested' : {
'property' : {
'foo' : 'bar'
}
}
}
...
}
问题是myObject.some可能不存在,myObject.some.nested也可能不存在,等等。所以要测试myObject.some.nested.property.foo 的存在,我必须这样做:
if (myObject.some) {
if (myObject.some.nested) {
if (myObject.some.nested.property) {
if (myObject.some.nested.property.foo) {
// do something with myObject.some.nested.property.foo here
}
}
}
}
因为如果我执行if (myObject.some.nested.property.foo) 并且其中一个父属性不存在,则会引发错误:
TypeError: 'undefined' is not an object (evaluating 'myObject.some.nested.property.foo')
有没有更好的方法来测试嵌套属性而不使用这么多 if 语句?
【问题讨论】:
标签: javascript