将值设置为非现有对象

时间:2012-08-13 20:15:53

标签: javascript

说我有这个对象:

test = {
    testObj: {
        "1": {
            "key": "value"
        }
    }
}

我想像testObj这样添加值:

test.testObj["2"].key = "my value";

我收到错误TypeError: Cannot set property 'key' of undefined

现在我明白key尚不存在,但2也不存在,但我可以为其设置值:

test.testObj["2"] = "something";

那我该怎么办呢?

修改 哇我觉得自己没有把它弄清楚是愚蠢的......反正谢谢你们。

1 个答案:

答案 0 :(得分:3)

Javascript不知道在这种情况下test.testObj["2"]应该是什么,因此最终将其作为现有属性进行测试:

test.testObj["2"].key = "my value";

分配只能应用于左侧结构的最后部分。

但你可以先通过创建对象告诉它是什么:

test.testObj["2"]={};
test.testObj["2"].key = "my value";

或者只需一步:

test.testObj["2"] = { key: "my value"};