Javascript-生成对象数组并理解构造函数

Javascript-生成对象数组并理解构造函数,javascript,class,object,constructor,Javascript,Class,Object,Constructor,我知道以前有人问过这个问题,但这些问题都是针对具体项目的,我找不到我想要的 我需要一个javascript中的对象数组。我已将一个类声明为: var svgData = {.....} (关键字类在esversion:5中不可用) 我有一个数组变量: var svgContent = []; 我试着像你在C#中那样写: svgContent[0] = new svgData(); 然而,您通常会为它创建一个构造函数,据我所知,它在javascript中并不存在。我一直在使用这样的函数:

我知道以前有人问过这个问题,但这些问题都是针对具体项目的,我找不到我想要的

我需要一个javascript中的对象数组。我已将一个类声明为:

var svgData = {.....} 
(关键字类在esversion:5中不可用) 我有一个数组变量:

var svgContent = [];
我试着像你在C#中那样写:

svgContent[0] = new svgData(); 
然而,您通常会为它创建一个构造函数,据我所知,它在javascript中并不存在。我一直在使用这样的函数:

function SvgData (....) {
    this.var = ...; 
    etc.
}
for(var i = 0; i < length; i ++){
    console.log(svgContent[i].var);
}
但问题是它和类之间没有联系,因此我有一个问题,当我尝试使用类似这样的for循环访问数组中的变量时:

function SvgData (....) {
    this.var = ...; 
    etc.
}
for(var i = 0; i < length; i ++){
    console.log(svgContent[i].var);
}
for(变量i=0;i
它反复返回相同的数字(它只是重写了自身,因为我这样做的方式将每个数组元素链接到了完全相同的变量svgData{})。
如何创建类(对象)的实例?如何将构造函数链接到变量?

您可以轻松更改代码以获得所需的内容(据我所知):


你应该考虑JavaScript是一种独立的语言,并以自己的方式实现它。从你的问题,我知道你想要一个数组(它仍然是JS中的对象,只是具有一些特殊属性)的对象,并且你希望这些对象是由一个模板(比如说“类”)制作的。

您提到没有构造函数,因为没有类。但是您使用函数SvgData的方式正是设计“类”的方式。这称为构造函数,它很特殊,因为它除了赋值给
这个
对象之外没有其他语句,因此它隐式返回
这个
对象(构造函数是任何返回
这个
对象的函数)

语法:
newsvgdata
基本上是语法糖:创建一个新的空对象(从“new”)并将从下一个函数返回的
这个
对象分配给它

函数SvgData(val){
this.var=val;
}
var myLength=10;
var myArr=[];
对于(var i=0;iconsole.log(myArr);
“它和类之间没有链接”-你是什么意思?你是在使用
svgContent[i]=new SvgData()
创建对象实例吗?不,但是如果我这样做了,那么构造函数SvgData()甚至在使用类是什么意思?当然我可以创建一个名为Create()的函数在C#中,你在类中编写构造函数。我认为你需要仔细阅读经典类和javascript OOP之间的差异。javascript做的事情有很多不同。Eric ElliotJavaScript编写javascript应用程序是一个很好的资源javascript没有你所知道的类。你的“类”
var svgData
没有任何意义。函数
svgData
基本上是您的类定义。不过您可以使用原型。