apply方法可以让我们写出非常优雅的多态函数。最近在项目中需要实现一个任务类,需要实现把数组作为arguments传递给回调函数,就是用apply来实现的:
初始化使用以下语句:
/*
* @brief: Task definition
* @param: Array: params 为参数数组
* @params: String: func 回调函数的名称
*/
function Task(params, func) {
this.params = params;
this.execute = function() {
func.apply(null,params);
}
}
初始化使用以下语句:
var task = new Task([null, url], RecordManager.addStep); //更新任务