一个是
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之间有任何区别,或者是否有使用函数构造函数?
最佳实践:请勿使用函数()构造函数。与eval()一样 和settimeout(),始终尝试远离传递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]
有什么区别?请参阅 @Greg's
Answer