首先,抱歉我缺乏术语.
function myObject(name,value){ this.name = name; this.value = value; }
我从中制作了一些物品
var One = new myObject("One",1); var Two = new myObject("Two",2);
我可以遍历从myObject类创建的每个新Object,而不将每个新Object放入一个数组中吗?
是否可以将Instantly调用函数添加到将Object添加到数组中的构造函数中?
例如
function myObject(name,value){ this.name = name; this.value = value; this.addToArray = function(){ theArray.push(this); // this is the IIFE }(); }
这可能吗? (显然当前语法不起作用)
编辑回到这一年后,我可以告诉你,这是可能的.你只需在构造函数中调用函数,如下所示:
function myObject(name,value){ this.name = name; this.value = value; this.addToArray = function(){ theArray.push(this); }; this.addToArray(); }
这是JSfiddle中的一个示例,在实例化时将每个对象推送到一个数组中,然后直接从数组调用每个对象的.speak()方法.
解决方法
不使用数组,你不能,它不是它的使用方式.
但是你可以做的是监视在myObject类的静态成员中创建的每个实例
function myObject(name,value){ this.name = name; this.value = value; this.watch(); } myObject.prototype.watch = function () { if (myObject.instances.indexOf(this) === -1) { myObject.instances.push(this); } }; myObject.prototype.unwatch = function () { myObject.instances.splice(myObject.instances.indexOf(this),1); }; myObject.instances = [];
原文地址:https://www.jb51.cc/js/157004.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。