如何在Javascript中将参数传递给基于eval的函数 [英] How to pass parameters to an eval based function inJavascript
本文介绍了如何在Javascript中将参数传递给基于eval的函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我将函数主体存储在带有函数名称的字符串中.
I am storing function body in string with function name.
function fnRandom(lim){
var data=[];
for(var i=0;i<lim;i++)
{
data=data.concat(Math.floor((Math.random() * 100) + 1));
}
return data;
}
从下拉列表中选择functionName之后,我使用eval执行函数主体.
After selecting the functionName from a drop down I use eval to execute function body.
JSON.stringify(eval(this.selectedFunction.body));
我想将'lim'传递给此执行,还是可以使用functionName作为执行的起始点?
I want to pass 'lim' to this execution or can I use functionName as initiating point for execution somehow?
推荐答案
使用函数构造函数
var body = "console.log(arguments)"
var func = new Function( body );
func.call( null, 1, 2 ); //invoke the function using arguments
具有命名参数
var body = "function( a, b ){ console.log(a, b) }"
var wrap = s => "{ return " + body + " };" //return the block having function expression
var func = new Function( wrap(body) );
func.call( null ).call( null, 1, 2 ); //invoke the function using arguments
这篇关于如何在Javascript中将参数传递给基于eval的函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文