考虑以下代码:

    if(eform[funcName] !== undefined){
        if(eform[funcName].init !== undefined){
            //finally do something
        }
    }


我首先检查eform对象是否具有变量funcName指定的属性。如果是这样,那么我需要检查该属性是否具有init方法。

有什么方法可以将它们组合成单个if语句?还是比这更优雅的东西?

最佳答案

使用短路评估:

if (eform[funcName] !== undefined && eform[funcName].init !== undefined)


如果未定义eform[funcName],则从不检查是否为false和eform[funcName].init的语句。根据首选项/可读性,以下内容也适用:

if (eform[funcName] && eform[funcName].init)

关于javascript - 寻找一种更简单的方法来检查对象中的多个属性和方法是否未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7689884/

10-09 18:07