我有以下代码。
如何在方法数组中执行clearSearch方法?
//Assume this is in a different file, inside a controller.
//I have access to the controller through a global variable.
function clearSearch() {
console.log('Search cleared');
}
function Task() {
this.controllers = [];
this.stores = [];
this.methods = [];
}
var taskList = [];
var task = new Task();
task.controllers.push('Search');
task.stores.push('search.Case', 'search.Result');
task.methods.push('clearSearch');
taskList.push(task);
答案 0 :(得分:4)
如果你的范围内有这个功能:
function clearSearch() { ... }
然后你应该按名称而不是字符串引用它并推送:
task.methods.push(clearSearch);
要执行它,您现在可以这样做:
task.methods[i]();
其中i
是数组中所需函数的索引。
答案 1 :(得分:1)
您可以将clearSearch
函数放在这样的对象中:
var obj = {
clearSearch: function () {
console.log('Search cleared');
}
};
然后你可以这样称呼它:
obj['clearSearch']();
<强> Fiddle 强>
有关详细信息,请参阅括号表示法中的MDN Article。