繁体   English   中英

获取 JavaScript 中 class 的所有实例

[英]Get all instances of a class in JavaScript

我正在尝试获取 class 的实例,但我找不到方法。 实例是在我的脚本加载之前创建的,所以我不能只创建一个存储实例的变量。 我尝试过更改原型方法,这对某些一直调用方法的类确实有效,但并非所有类都有效,并且更改所有方法非常烦人。 那么,有没有办法让 class 的所有实例可靠且任意定时

没有。JavaScript 没有任何功能可以实现这一点。

通常,我会通过修改 class 的constructor以包含类似instance_of_foo.push(this)的内容来解决此问题,但您似乎无法控制 class 的源代码,因此这对您不起作用。

我不知道您是否使用了框架,但是您可以在所有需要的被调用者都可以访问的地方定义一个数组。 在那里,您可以通过构造函数存储实例。

这是一个例子:

"use strict";

var exampleInstances = [];

class Example{
    prop = "";
    
    constructor() {
        this.prop = "Example"+exampleInstances.length;
        exampleInstances.push(this);
    }
}

var eInstance = new Example();
var eInstance2 = new Example();
var eInstance2 = new Example();

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM