我有以下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的新手,我读过的内容很少表明它应该没问题。显然不是。了解我所缺少的内容会很有帮助。感谢。
答案 0 :(得分:5)
你需要使用传入函数的参数来使其工作,如:
function Vertex(coords, colors)
{
this.coords = coords || [];
this.colors = colors || [];
}
答案 1 :(得分:1)
你的构造函数应该初始化属性:
sub("^(.)\\S+(\\s+.*)$", "\\1.\\2", MLB$Names)