假设我有一个名为John的对象,里面有很多其他嵌套对象,我试图按照这种方式访问它们
if (john.address.highstreet) {
var highstreet = john.address.highstreet
}
但是如果address属性为null,那么我将收到错误
unable to get property 'highstreet' of undefined
我的函数执行停止
是否有一种方法可以访问嵌套属性,而无需使用如下所示的许多嵌套if语句:
if (john.address) {
if (john.address.highstreet) {
var highstreet = john.address.highstreet
}
}
答案 0 :(得分:6)
标准方式是
IF_APC_WSP_EXTENSION
如果地址未定义,那么将返回该地址。
答案 1 :(得分:1)
您可能希望使用更聪明的方式来访问这些属性。像getPropertyByString("john.address.highstreet")
这样的东西。如果无法解析路径,此函数可能会返回null
或未定义。
所以你的代码看起来像这样:
var highstreet = getPropertyByString("john.address.highstreet");
答案 2 :(得分:0)
另一种方法是使用try-catch-block。
try {
var highstreet = john.address.highstreet;
} catch (err) {
// do error handling
}
答案 3 :(得分:0)
您还可以使用 hasOwnProperty 方法检查属性
wmic