var sing = function(name) {
console.log(name + " is SINGING");
}
var cry = function(name) {
console.log(name + " is CRYING");
}
var list = [sing, cry];
for(var func of list) {
func('foo');
}
这正是我想要的代码。但我不确定这是不是一个好习惯。
答案 0 :(得分:0)
var functionName = function(name, action) {
console.log(name + " is "+ action );
}
functionName("Aditya", "Programing");
Aditya,我认为你应该选择这种格式。保持单个功能以执行类似的任务总是好的做法。
答案 1 :(得分:0)
是的,在某些情况下,将函数存储在数组中是更好的设计。
想象一下以下EventEmitter
课程。您可以使用名为on
的方法注册事件侦听器,并使用emit
调度事件。这些函数存储在一个数组中:
var EventEmitter = function () {
this._events = {};
};
EventEmitter.prototype.on = function (event, listener) {
if (!this._events.hasOwnProperty(event)) {
this._events[event] = []; // stores the listeners bound to the event's name
}
this._events[event].push(listener); // add the listener to the event's listeners array
};
EventEmitter.prototype.emit = function (event) {
var args = Array.slice(arguments, 1);
if (this._events.hasOwnProperty(event)) {
this._events[event].forEach(function (listener) {
listener.apply(null, args);
});
}
}
var emitter = new EventEmitter();
// push the first function to the array
emitter.on('event-a', function (data) {
console.log('Event A was fired!');
});
// push the second function to the array
emitter.on('event-a', function (data) {
console.log('Second listener to event A');
});
emitter.on('event-b', function (a, b, c) {
console.log('Event B:', a + b + c);
});
emitter.emit('event-a');
setTimeout(function () {
emitter.emit('event-b', 2, 3, 4);
}, 1500);

这就是为什么我会在某些情况下使用它。我不认为这是不好的做法。