Javascript属性已定义,但返回undefined

时间:2017-11-21 15:56:20

标签: javascript rxjs redux-observable

我有这个JSON对象:

{
  "type": "SIGN_IN",
  "credentials": {
    "id": "mt@ft.cc",
    "password": "jhkl"
  }
}

当我记录obj.cedentials时,它显示相同的对象(如obj);

{
  "type": "SIGN_IN",
  "credentials": {
    "id": "mt@ft.cc",
    "password": "jhkl"
  }
}

当我尝试访问id时,例如:obj.credentials.id,它返回undefined

enter image description here

为什么会这样?它会在以后评估吗?

4 个答案:

答案 0 :(得分:3)

您的credentials对象包含credentials个对象。

所以你需要使用以下内容:

console.log(obj.credentials.credentials.id);

obj变量的完整内容实际上如下:

{
    "credentials": {
        "type": "SIGN_IN",
        "credentials": {
            "id": "mt@ft.cc",
            "password": "jhkl"
        }
    },
    "type": "SIGN_IN",
    ...
}

答案 1 :(得分:3)

您的对象看起来像这样:

q = {
    credentials: {
        credentials: { ...id }
    }
}

以便访问您需要使用的ID:q.credentials.credentials.id

答案 2 :(得分:0)

  

当我记录obj.cedentials时,它显示相同的对象(与obj相同);

{
  "type": "SIGN_IN",
  "credentials": {
    "id": "mt@ft.cc",
    "password": "jhkl"
  }
}

因此,当您记录obj.cedentials时,您将获得一个具有credentials属性的对象,该对象包含一个具有id属性的对象。

obj.cedentials没有自己的id属性!

您需要obj.cedentials.credentials.id

答案 3 :(得分:0)

应该是

console.log(q.credentials.credentials.id);