我正在创建一个函数对象。但是,当我运行此对象时,它返回undefined
例如,在这个JSFiddle example中,当我尝试alert(test(8))
时,函数运行并返回13但是当我创建一个Function对象时,'alert(func(8))'返回undefined。
<button onclick="start()">Start Test</button>
<script>
function test(num) {
alert("running...");
return num + 5;
}
function start(){
alert(test(8));
var func = new Function("num", "test(num)");
alert(func(8));
}
</script>
答案 0 :(得分:5)
因为在您的第二个func
中,您不是return
test(num)
function test(num) {
alert("running...");
return parseInt(num) + 5;
}
function start(){
alert(test(8));
// return the value obtained on calling test(num) <------------
var func = new Function("num", "return test(num)");
alert(func(8));
}
start();
答案 1 :(得分:0)
我找到了解决方案。当我在控制台中检查变量func的值时,我发现我需要返回像this JSFiddle这样的函数。我需要使用var func = new Function("num", "return test(num)")
代替var func = new Function("num", "test(num)")