如何检查对象是否具有属性javascript?

Mic*_*ael 6 javascript

我有这个功能:

      function ddd(object) {
        if (object.id !== null) {
            //do something...
        } 
    }
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

Cannot read property 'id' of null
Run Code Online (Sandbox Code Playgroud)

如何检查对象是否具有属性并检查属性值?

del*_*ree 14

hasOwnProperty 是你正在寻找的方法

if (object.hasOwnProperty('id')) {
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty

作为替代方案,您可以执行以下操作:

if (typeof object.id !== 'undefined') {
    // note that the variable is defined, but could still be 'null'
}
Run Code Online (Sandbox Code Playgroud)

在这种特殊情况下,您所看到的错误表明它object是空的,不是id那么警惕那种情况.

为了测试像这样的各种东西的笨拙的深层嵌套属性,我使用了brototype.