我将函数体存储在带有函数名称的字符串中。
function fnRandom(lim){
var data=[];
for(var i=0;i<lim;i++)
{
data=data.concat(Math.floor((Math.random() * 100) + 1));
}
return data;
}
Run Code Online (Sandbox Code Playgroud)
从下拉列表中选择functionName之后,我使用eval执行函数主体。
JSON.stringify(eval(this.selectedFunction.body));
Run Code Online (Sandbox Code Playgroud)
我想将“ lim”传递给此执行,还是可以将functionName用作执行的起始点?
(function(){
console.log(1);
setTimeout (function(){console.log(2);},1000);
setTimeout (function(){console.log(3);},0);
console.log(4);
})();Run Code Online (Sandbox Code Playgroud)
输出:
1
4
undefined
3
2
Run Code Online (Sandbox Code Playgroud)
为什么输出中有未定义的?