【发布时间】:2015-08-20 05:25:22
【问题描述】:
所以,假设我有这两个功能:
var foo = function() {
this.message = "fooBar";
this.fooBar = function() {
console.log(this.message);
};
};
和
var goo = function() {
this.message = "gooBar";
this.gooBar = function() {
console.log(this.message);
};
};
那么,假设我有这两个数组:
var Foos = [];
var Goos = [];
在程序的某个地方,我将相应函数的新实例推送到数组中(新的 foo 到 Foos 中,新的 goo 到 Goos 中)。现在,我想调用这些方法。所以,我可以为 Foos 这样做:
for(var i = 0; i < Foos.length; i ++) {
Foos[i].fooBar();
}
然后是 Goos:
for(var i = 0; i < Goos.length; i ++) {
Goos[i].gooBar();
}
当我有很多函数(我为我的程序做的)时,这样做会有点乏味。而且我的程序还提供了不止一种方法的功能。但有些功能只有一个。还有人有五个。所以,我想,为什么不使用Array 对象,就像这样:
Array.prototype.apply = function() {
for(var i = 0; i < this.length; i ++) {
this[i].CALL_METHODS();
}
};
然后我可以将所有数组存储在一个数组中,并对该数组中的每个元素调用apply。但是,.CALL_METHODS() 不是一种实际的方法(当然)。那么,有没有什么方法可以做到这一点,调用实例的所有方法,不管方法的数量和名称是多少?
提前致谢!
【问题讨论】:
标签: javascript arrays function class methods