如何创建,分配和访问对象的新值?

时间:2014-07-04 05:13:37

标签: javascript javascript-objects

如何为对象创建,分配和访问新值?

声明新对象并向is添加新值对我来说是个问题。

任何人都可以帮助我吗?

 var Countries = [ 
    {
        name : 'USA',
        states : [
            {
                name : 'NH',
                cities : [
                    {
                        name : 'Concord',
                        population : 12345
                    },
                    {
                        name : "Foo",
                        population : 456
                    }
                    /* etc .. */
                ]
            }
        ]
    },
    {
        name : 'UK',
        states : [ /* etc... */ ]
    }
]

试过这样:

Countries = new Array();
Countries[0] = new Country("USA");
Countries[0].states[0] = new State("NH");
Countries[0].states[0].cities[0] = new city("Concord",12345);
Countries[0].states[0].cities[1] = new city("Foo", 456);
...
Countries[3].states[6].cities[35] = new city("blah", 345);

2 个答案:

答案 0 :(得分:0)

您尝试使用new Countrynew State之类的内容反复创建新对象,但您没有将其定义为函数。更简单的事情应该有效:

Countries[0].states[0].name = "Not New Hampshire";
console.log(Countries[0].states[0].name);

[编辑]:我也非常同意颠倒。请查看有关使用JavaScript中的数据结构(数组和对象)的教程。

答案 1 :(得分:0)

正如@uʍop-ǝpısdn评论的那样,你会发现很多教程。

在JavaScript中创建“newable”对象的常见模式之一是:

var Country = function(name, states){
    this.name = name;
    this.states = states || [];
}

var State = function(name, cities){
    this.name = name;
    this.cities = cities || [];
}

var Countries = [];
Countries.push( new Country("USA", [ new State("NH", ...), ... ]) );