无法访问Javascript对象属性

时间:2017-01-05 09:24:04

标签: javascript

我知道这可能是一个菜鸟问题,并且有很多类似的命名问题,但我找不到解决问题的解决方案。

我正在尝试使用以下代码访问一个简单的嵌套JS对象:

var test = '99999999';
var test_object = {};

test_object[test] = {"ak1" : "v1", "ak2" : "v2"};
console.log(test_object);
console.log(test_object.test);

但由于某些原因,我在尝试访问'test'属性时仍然会'未定义'。

我在这里创造了一个简单的小提琴: https://jsfiddle.net/nga7zqkf/

我无法弄清楚为什么我无法访问'test'属性。有人可以帮我一点吗?

谢谢!

2 个答案:

答案 0 :(得分:7)

var test = '99999999';
test_object[test] = {"ak1" : "v1", "ak2" : "v2"};

您永远不会设置 test 属性,您可以设置 99999999 属性。

如果要使用方括号表示法设置test属性,则[]之间的表达式必须评估为"test"

test_object["test"] = {"ak1" : "v1", "ak2" : "v2"};

或者

var test = 'test';
test_object[test] = {"ak1" : "v1", "ak2" : "v2"};

答案 1 :(得分:1)

请查看以下示例

    var test = 99999999;
    var test_object = {};
    var test_object2 = {};

    test_object[test] = {"ak1" : "v1", "ak2" : "v2"};
    console.log(test_object);
    console.log(test_object[test]);

    test_object2.test = {"ak1" : "v1", "ak2" : "v2"};
    console.log(test_object2);
    console.log(test_object2.test);

工作示例链接https://jsfiddle.net/nga7zqkf/3/