参数包含函数中的表达式?

时间:2015-10-22 05:50:31

标签: javascript

我是JS的全新手。 现在我已经读了这本代码。

var sayMessage = new Function("message", "console.log(message);");

我的问题是此功能中{}的位置。 我的意思是我们怎样才能在需要争论的地方写message", "console.log(message);? 感谢。

1 个答案:

答案 0 :(得分:1)

JavaScript Function构造函数可用于从字符串定义函数。构造函数将作为函数体评估作为最后一个参数传递的字符串。

  

在创建函数时,将解析使用Function构造函数创建的函数对象。这比使用函数表达式或函数声明声明函数并在代码中调用函数效率低,因为这些函数会使用其余代码进行解析。

来自documentation

这意味着这句话:

var sayMessage = new Function("message", "console.log(message);");

将被评估为此表达式:

var sayMessage = function (message) {
    console.log(message);
};

您可以看到参数messageconsole.log(message)如何从一个映射到另一个。

您首先想要这样做的原因很少,而且在惯用JavaScript中很少见到。