Javascript eval()
某些情况下,传递函数名之后,接收的不是函数而是函数名的字符串类型。
eval() 方法—用来执行字符串代表的 javascript 代码,如果传递的不是字符串的话,会直接返回传值,而非调用。
例
代码语言:javascript复制function test(str){
alert(str);
}
//如果param是值;
eval('test("param")');
//如果param是变量;
var param = 'B';
eval('test(param)'); //会查找名为param的变量,如果找不到会抛出异常
字符串数组函数名函数
默认执行一个js函数会有指定函数名,如果想同时执行多个相同函数但又不同内容的时候,需要将相应函数使用 js 的 eval() 转换为字符串函数后再执行
代码语言:javascript复制var arr = ['funcA(str)','funcB(str)']; //定义数组函数名
//遍历数组函数
for(var i=0;i《arr.length;i ){
let arrFunc = "function " arr[i] "{ alert(str); }";
eval(arrFunc);
};