【问题标题】:Given a function in a string format how do i convert it back to a function in javascript? [duplicate]给定一个字符串格式的函数,我如何将它转换回 javascript 中的函数? [复制]
【发布时间】:2015-08-04 06:22:51
【问题描述】:

假设我在 javascript 中有一个函数

var fn = function () {
        return 6 + 5;
};

然后我做

fn.toString();

返回

"function () { return 6 + 5; }"

我怎样才能把它变成一个函数并最终在以后调用它。正如其他人所说,我已经尝试过eval,但这似乎对我不起作用。任何帮助将不胜感激!!!

【问题讨论】:

    标签: javascript node.js string function eval


    【解决方案1】:

    你可以给函数起一个名字,然后你就可以调用它。这应该工作

    var fn = function () {
        return 6 + 5;
    };
    var stringFunc = fn.toString();
    
    eval("var newfn = " + stringFunc);
    console.log(newfn())
    

    你也可以像这样传递参数来执行它

    console.log(eval("("+stringFunc+")()"))
    

    【讨论】:

      【解决方案2】:

      @LeeDennis 只需调用fn(); 而不是fn.toString(); 变量“fn”就是您只需添加括号的函数。

      我通过控制台记录了输出,以便您查看它们。

      //代码

      <!DOCTYPE html>
      <html>
      <head>
      <script>
      var fn = function () {
              return 6 + 5;
      };
      console.log(fn()); //returns 11
      console.log(fn.toString()); //returns "function () { return 6 + 5; }"
      </script>
      </head>
      <body>
      </body>
      </html>
      

      【讨论】:

        【解决方案3】:

        使用 eval():

        fnString = 'function () { return 6 + 5; }';
        fn = eval('(' + fnString + ')');
        alert(fn());
        

        看看这个:

        JavaScript eval() "syntax error" on parsing a function string

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-10-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-02-13
          相关资源
          最近更新 更多