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); //更新任务