This question already has answers here:
Access Javascript nested objects safely

(12个答案)


3年前关闭。




假设我有一个叫做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
    }
}

最佳答案

标准方法是

if (john.address && john.address.highstreet) {
    var highstreet = john.address.highstreet
}

如果地址未定义,则将返回该值。

10-06 01:29