如何在调用此类的构造函数时创建ES6类的对象数组?

Wojciech Jakubek

我想在调用类的构造函数时创建对象的数组或对象吗?我的意思是,每次调用类构造函数时,它都会向数组或对象添加新对象。

FE

let blocks = {};

class Block(){

    constructor(X,Y,width,height){
        this.X = X;
        this.Y = Y;
        ...
        and now I would like to add this created object to "blocks"
        something like: blocks.push(and this object here)
    }
}

我如何实现这样的东西?还是应该使用其他功能?

TJ人群

类似于:blocks.push(和此处的对象)

那就是您要做的事情,但是blocks应该是一个数组,而不是一个对象。所以:

let blocks = [];

然后在构造函数中:

blocks.push(this);

现场示例:

let blocks = []; // <== [], not {}

class Block {    // No ()

    constructor(X,Y,width,height){
        this.X = X;
        this.Y = Y;
        blocks.push(this);
    }
}

new Block(1, 1, 1, 1);
new Block(2, 2, 2, 2);
new Block(3, 3, 3, 3);

console.log(blocks.length); // 3

但是,请注意,这意味着对象(已创建的块)将始终保留在内存中,即使它最初创建的任何内容随其完成并放开它也是如此。通常,您不会让构造函数执行类似的操作,而是将其留给调用方。

根据构建此块列表的原因,您可能会(或可能不想)使用WeakSetWeakMap代替。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 ES6 类构造函数中创建和填充二维数组

如何在javascript es6类构造函数中声明一个对象

ES6 map 函数如何在 JSX 中创建对象数组

Javascript 在类构造函数中调用类 (ES6)

从类静态方法调用ES6类构造函数

如何在子构造器Javascript ES6类中调用Parent方法?

如何在ES6中调用班级的父级的父级构造函数?

如何在子构造函数中使用ES6 super调用父方法?

如何修改ES6类的构造函数

如何在ES6中将json对象数组绑定到javascript类数组

如何在ES6中实现命名构造函数

如何在不使用JavaScript ES6中的构造函数的情况下使用对象文字来构成类的实例?

为什么直接在构造函数中创建ES6类的实例时,Jest的toThrow无法正常工作?

如何在不调用此类的构造函数的情况下创建该类的实例?

如何在javascript / nodejs(ES6)中创建静态函数/对象

如何在 Javascript 中的对象构造函数中创建数组

在构造函数中绑定函数时,如何在ES6 React中向事件处理程序添加参数

在另一个对象的构造函数中创建新的 ES6 对象失败

如何在ES6中获得对类函数的引用?

如何在ES6类内部声明局部函数?

如何在 ES6 类中使用匿名函数

ES6:无法从类创建对象

Javascript ES6 TypeError:如果没有“ new”,则无法调用类构造函数Client

TS / ES6:实例化类而不调用构造函数

在 JavaScript (ES6) 中不使用 Switch 调用新构造函数类的更好方法

从函数创建ES6类

如何在Javascript es6中过滤对象数组

如何在es6中创建析构函数

将带有预定义道具的对象传递给类构造函数es6