如何在JavaScript中定义对象变量结构?

时间:2014-02-27 14:20:11

标签: javascript object definition

我想定义类似下面的对象结构,所以我可以从许多来源填充它。我需要用什么语句来定义它?

Offices[]是一个开放式数组,其下方是rel[]。所有元素都是字符串或数字。

Offices.name
Offices.desc
Offices.rel.type
Offices.rel.pt

2 个答案:

答案 0 :(得分:11)

首先我要使Offices成为一个数组:

var Offices = [];

然后用对象填充它:

var obj = {
    name: "test",
    desc: "Some description",
    rel: []
}

Offices.push(obj);

现在您的阵列(Offices)填充了一个对象,因此您可以通过Offices[0].desc访问它 - 您还可以使用rel填充Offices[0].rel.push(anotherObj)数组

答案 1 :(得分:3)

如果我理解正确,您希望在Offices数组中放置多个相同类型的对象。为了轻松构建相同类型的多个对象,您可以使用构造函数:

function Office(name, desc, rel){
  this.name = name;
  this.desc = desc;
  this.rel = rel;
}

现在您可以声明一个数组来保存上述类型的实例:

var offices = [];

你可以添加这样的新实例:

offices.push(new Office('John', 'good guy', []));

您可以将相同的想法应用于rel数组以强制执行对象的结构,或者只使用对象和数组文字:

offices.push(new Office('John', 'good guy', [{ type : 'M', pt : 3 }, { type : 'Q', pt : 2 }]);