gpt4 book ai didi

javascript - 在javascript中通过属性查找类实例

转载 作者:行者123 更新时间:2023-11-30 12:30:27 25 4
gpt4 key购买 nike

我想检索一些只有参数值的 js 类的实例

让我们说:

function myClass(id)
{
this.id = id
}

myClass.prototype.sayHello = function()
{
alert('hello');
}

myClass.instanceFromID = function()
{
...
}

var instance1 = new myClass(22);
var instance2 = new myClass(33);
var instance3 = new myClass(232);
var instance4 = new myClass(1533);

我希望能够通过一些方法访问实例,例如

myClass.instanceFromID(33).sayHello();

我一直在考虑 2 个解决方案,但它们缝合过度:

第一个想法:

将所有实例存储在一个数组中(全局作用域或类静态)并遍历所有实例以查找并返回实例,但这意味着要跟踪、添加和删除数组中的实例。

第二个想法:

让每个实例监听从文档触发的自定义事件,并将发出的数据与内部参数进行比较,以检查它是否关注并向文档发出信号。

我怎样才能以简单的方式实现这一目标,或者除了这 2 种方式之外别无他法?

最佳答案

根据您所写的内容,让类本身使用实例变量跟踪实例似乎是您正在寻找的方法。当然,这意味着实例永远不会被垃圾回收,除非您明确释放它们。但也许这对你来说不是问题。以下是我将如何解决这个问题:

function MyClass(id) {
this.id = id;
MyClass.instances[id] = this;
}
MyClass.instances = {};
MyClass.instanceFromId = function(id) {
return MyClass.instances[id];
}

关于javascript - 在javascript中通过属性查找类实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27910945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com