参数包含函数中的表达式

Arguments contains expressions in functions?

本文关键字:表达式 函数 包含 参数      更新时间:2023-09-26

我是JS的新手。现在我在一本书中读到了这段代码。

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

我的问题是{}在这个函数中的位置。我的意思是,我们怎么写message", "console.log(message);,这里需要一个参数?谢谢。

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

用Function构造函数创建的Function对象在创建函数时被解析。这比用函数表达式或函数语句声明函数并在代码中调用它效率低,因为这些函数是与其余代码一起解析的。

从文档。


意思是:

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

将被计算为这个表达式:

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

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

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