我见过类似的用法,var f1=new Function();
但仅此而已。尝试在 Google 中搜索Function
-class 但没有返回我需要的内容。
它的意义是什么?
请建议我如何以及何时使用它。如果可能的话,给我一些真正的链接来研究它。
我见过类似的用法,var f1=new Function();
但仅此而已。尝试在 Google 中搜索Function
-class 但没有返回我需要的内容。
它的意义是什么?
请建议我如何以及何时使用它。如果可能的话,给我一些真正的链接来研究它。
最佳实践建议您永远不要使用基类型构造函数。在很多情况下,new
与基本类型一起使用会破坏typeof
.
但是,new Function()
是有效的JavaScript。只是不推荐,在大多数情况下也没有用(var a= function() {}
等效)。
并不是说您可以像这样使用Function
构造函数作为eval
调用new Function('var a = 1; return a + a;')
。但这可能很危险,因此请谨慎使用。
不一定有使用的有益理由,new Function()
因为您可以像这样简单地创建一个空白函数:
var f1 = function () {
// my function code here;
};
// calling the function
f1();
Function
无论哪种方式,每个人都将附有原型。
new Function()
(also new Array()
, etc) 通常应该避免,因为它必须评估。
从技术上讲,这两位 JavaScript 之间确实没有区别(其他答案已经涵盖了这一点):
var f1 = new Function();
和
var f1 = function () { };
但是,您可以做的是Function
检查变量的类型:
var f1 = 'cat';
console.log(typeof(f1) === typeof(Function)); // false
var f2 = function () { return 'cat'; };
console.log(typeof(f2) === typeof(Function)); // true
使用 Function 构造函数创建的函数对象在创建函数时进行解析。这比声明一个函数并在代码中调用它效率低,因为使用函数语句声明的函数会与其余代码一起解析。
来自MDN