初始化包含数组的javascript对象

时间:2016-04-17 20:45:13

标签: javascript arrays object

我有以下C ++结构,我想在Javascript中尽可能忠实地创建:

struct Vertex
{
   float coords[4];
   float colors[4];
};

所以我做了以下事情:

function Vertex(coords, colors)
{
   this.coords = [];
   this.colors = [];
}

现在,以下内容可用于创建Vertex实例:

var oneVertex = new Vertex();
oneVertex.coords = [20.0, 20.0, 0.0, 1.0];
oneVertex.colors = [0.0, 0.0, 0.0, 1.0];

但是以下(slicker?)没有:

var oneVertex = new Vertex([20.0, 20.0, 0.0, 1.0], 
                            [0.0, 0.0, 0.0, 1.0]);

为什么呢?我是Javascript的新手,我读过的内容很少表明它应该没问题。显然不是。了解我所缺少的内容会很有帮助。感谢。

2 个答案:

答案 0 :(得分:5)

你需要使用传入函数的参数来使其工作,如:

function Vertex(coords, colors)
{
   this.coords = coords || [];
   this.colors = colors || [];
}

答案 1 :(得分:1)

你的构造函数应该初始化属性:

sub("^(.)\\S+(\\s+.*)$", "\\1.\\2", MLB$Names)