【发布时间】:2015-09-22 13:13:56
【问题描述】:
是否有可能每次创建一个对象(使用我构建的构造函数)时,它都会自动附加到一个空数组?
例如,我有一个 client 构造函数:
function client (firstName, lastName, id, code, balance) {
this.firstName = firstName;
this.lastName = lastName;
this.id = id;
this.code = code;
this.balance = balance;
}
还有几个例子:
var fred = new client("fred", "sou", 123456, 4545, 2500);
var george = new client("george", "potter", 852564, 5858, 1000);
var will = new client("will", "smith", 475896, 1234, 45000);
我一直在添加客户端,我不希望每次注册客户端(创建对象)时都需要 .push 将其添加到我的数组,像这样:
var fred = new client("fred", "sou", 123456, 4545, 2500);
clientsArray.push(fred);
var george = new client("george", "potter", 852564, 5858, 1000);
clientsArray.push(george);
var will = new client("will", "smith", 475896, 1234, 45000);
clientsArray.push(will);
那么,有没有办法自动定义它?我认为这可能与客户端构造函数有关,但它不是一个普通的方法(因为再次,我必须为我创建的每个对象调用此方法)。
有人有想法吗?
【问题讨论】:
-
你不能在构造函数中传递数组并在那里推送吗?
-
clientsArray是否在可以从client访问的范围内?如果没有,只需编写一个包装函数 -CreateClient,它同时执行new client和push... -
在构造函数中添加
clientsArray.push(this); -
使用内部数组创建
ClientManager并创建clientManager.Add( ctor args ) / clientManager.get("fred") ...
标签: javascript arrays object multidimensional-array