函数表达式(`函数(…){…}`)和调用函数构造函数(`new函数(…)`)?

问题描述 投票:0回答:1
在互联网上搜索时,我找到了两种编写JavaScript函数的方式。

一个是

Function()

构建器

var myFunction = new Function("a", "b", "return a * b");

var x = myFunction(4, 3);

second是简单的定义函数
var myFunction = function (a, b) {return a * b};

var x = myFunction(4, 3);

当我使用两种方法时,我发现这些2.
这2之间有任何区别,或者是否有使用函数构造函数?
    

javascript function constructor function-expression
1个回答
2
投票
面向对象的JavaScript-第二版

:使用 function()构造函数,您首先传递参数名称(AS 字符串),然后是功能正文的源代码(再次 作为字符串)。 JavaScript引擎需要评估源代码 您通过并为您创建新功能。此源代码 评估遭受相同的缺点在eval()函数, 因此使用函数()构造函数定义函数应该是 尽可能避免 var first = new Function( 'a, b, c, d', 'return arguments;' ); first(1, 2, 3, 4); // [1, 2, 3, 4] var second = new Function( 'a, b, c', 'd', 'return arguments;' ); second(1, 2, 3, 4); // [1, 2, 3, 4] var third = new Function( 'a', 'b', 'c', 'd', 'return arguments;' ); third(1, 2, 3, 4); // [1, 2, 3, 4]

最佳实践:请勿使用函数()构造函数。与eval()一样 和settimeout(),始终尝试远离传递JavaScript代码 作为字符串
有什么区别?请参阅 @Greg's
Answer

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.