javascript - 收集用构造函数创建的所有对象?

标签 javascript jquery

是否有任何简单的方法来获取使用构造函数创建的所有对象

var ObjectConstructor = function(value){
    this.value = value;
    this.arr = [];

    this.someMethod= function () {
         //do something
    }
};

$.each($('.someClass'), function () {
    var o = new ObjectConstructor (this);
    o.someMethod();
})

我在这个模式的帮助下创建了很多对象。现在我需要在这个过程的某个地方收集所有这些。 我的解决方案是在构造函数之外创建一个全局对象

var allObjects = [];

并将对象一一添加到该数组中,同时在构造函数内生成它们

allObjects.push(this)

最终代码:

var allObjects = [];

var ObjectConstructor = function(value){

    this.value = value;
    this.arr = [];

    this.someMethod= function () {
         //do something
    }

    allObjects.push(this)

};

$.each($('.someClass'), function () {
    var o = new ObjectConstructor (this);
    o.someMethod();
})

现在我可以使用 allObjects 数组了。

我的问题:我的解决方案可以吗?或者有没有更好的方法来解决这个问题。谢谢。

最佳答案

My solution is creating a global object outside of constructor var allObjects = [];

是的,这基本上就是如何做到这一点。但是,您需要注意,当您忘记从数组中删除不再需要的对象时,这可能会导致内存泄漏。

Is there any better approach for this.

这取决于what you think to need this for .

关于javascript - 收集用构造函数创建的所有对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21552561/

相关文章:

javascript - 嵌套 ul 显示在 anchor 单击上

jQuery - 悬停时从元素获取属性

javascript - javascript 服务器异步事件

javascript - 绝对定位溢出

javascript - 以特定格式将 mysql 数据检索到 javascript 时出现问题

javascript - 2 个不同的 javascript 语句在应该相同的情况下返回不同的值

javascript - jquery ajax 调用看不到响应数据

javascript - 我可以通过 javascript 在 Eloqua 中创建联系人吗?

javascript - JS 延迟页面加载,即使它在 document.ready 中

jquery - 如何使 lightbox2 响应式