Javascript - 创建对象数组并理解构造函数

标签 javascript class object constructor

我知道这个问题以前曾被问过,但它们总是特定于项目的,我找不到我要找的东西。

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

var svgData = {.....} 

(关键字 class 在 esversion 中不可用:5) 我有一个数组变量:

var svgContent = [];

我尝试像在 C# 中那样编写:

svgContent[0] = new svgData(); 

但是,您通常会为其创建一个构造函数,据我所知,JavaScript 中不存在该构造函数。我一直在使用这样的函数:

function SvgData (....) {
    this.var = ...; 
    etc.
}

但问题是它和类之间没有链接,因此当我尝试使用这样的 for 循环访问数组中的变量时,我遇到一个问题:

for(var i = 0; i < length; i ++){
    console.log(svgContent[i].var);
}

它重复返回相同的数字(它只是覆盖自身,因为我这样做的方式已将每个数组元素链接到完全相同的变量 svgData{}。 如何创建类(对象)的实例?如何将构造函数链接到变量?

最佳答案

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

function SvgData(value) {
    this.var = value;
    // ...
}

// use this instead of your svgData variable:
SvgData.prototype = {
    // ...
}

var svgContent = [];

svgContent.push(new SvgData("value")); 

Read more on JavaScript prototypes.

关于Javascript - 创建对象数组并理解构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45713829/

相关文章:

javascript - 使用 javascript 创建 HTML 元素?

c++ - 静态成员函数访问静态私有(private)变量时链接器错误

python - 如何在该类方法中创建类实例?

javascript - 在 Javascript 对象中使用 'this'

java - 如何对对象 java 的数组列表进行排序?

javascript - 在 v-for 循环中的每第 n 个项目之后插入项目

javascript - div 磁贴上的 Jquery 单击事件不起作用

javascript - 为什么我们应该将 JavaScript 代码放入 IIFE 中?

c++ - 在 Visual Studio Code 中为 C++ 创建一个新类?

java - 欺骗Java中的private关键字