将数组字符串作为JS方法执行

时间:2014-02-19 16:49:05

标签: javascript arrays

我有以下代码。
如何在方法数组中执行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);

2 个答案:

答案 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