因此,确保从来没有从用户输入(以及查询字符串 id 中的任何内容被认为是用户输入)输入的 eval不受信任代码。您可以将用户输入作为指向函数的键,但是要确保,如果给定的字符串与对象中的键不匹配,则不执行任何操作。例如:
// set up the possible functions:
var myFuncs = {
func1: function () { alert('Function 1'); },
func2: function () { alert('Function 2'); },
func3: function () { alert('Function 3'); },
func4: function () { alert('Function 4'); },
func5: function () { alert('Function 5'); }
};
// execute the one specified in the 'funcToRun' variable:
myFuncs[funcToRun]();