JS Make函数对象返回

时间:2014-03-10 07:05:31

标签: javascript jquery oop

我正在创建一个函数对象。但是,当我运行此对象时,它返回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>

2 个答案:

答案 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)")