Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正在收集使用构造函数创建的所有对象?_Javascript_Jquery - Fatal编程技术网

Javascript 正在收集使用构造函数创建的所有对象?

Javascript 正在收集使用构造函数创建的所有对象?,javascript,jquery,Javascript,Jquery,有没有简单的方法可以获取所有使用构造函数创建的对象 var ObjectConstructor = function(value){ this.value = value; this.arr = []; this.someMethod= function () { //do something } }; $.each($('.someClass'), function () { var o = new ObjectConstructo

有没有简单的方法可以获取所有使用构造函数创建的对象

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

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

$.each($('.someClass'), function () {
    var o = new ObjectConstructor (this);
    o.someMethod();
})
allObjects.push(this)
在这个模式的帮助下,我创建了很多对象。现在我需要收集它们,在这个过程中的某个地方。 我的解决方案是在构造函数之外创建一个全局对象

var allObjects = [];
在构造函数中生成对象时,将对象逐个添加到此数组中

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

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

$.each($('.someClass'), function () {
    var o = new ObjectConstructor (this);
    o.someMethod();
})
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();
})
现在我可以使用AllObject数组了

我的问题:我的解决方案行吗?或者有没有更好的方法。多谢各位

我的解决方案是在构造函数
var allObjects=[]之外创建一个全局对象

是的,基本上就是这样做的。但是,您需要注意,当您忘记从阵列中删除不再需要的对象时,这可能是内存泄漏

有没有更好的办法


这取决于。

以后,您可以将代码复制/粘贴到中,看看它是否有效。谢谢,但我知道它有效。我只是想学习一种更好的方法,如果有的话。类似于使用原型、instanceOf。。。AllObject不应该是ObjectConstructor的属性吗?还有一种方法可以从数组中删除成员。是的,绝对正确。