Function构造函数的应用
构造函数
new Function()
创建了一个新的Function对象。直接调用此构造函数可以动态创建函数,但会遇到与eval
类似的安全问题和性能问题。与eval
不同的是,new Function()
不会执行代码,而是返回一个函数,并且其作用域只在全局上。
Function的arguments
new Function('a', 'b', 'return a + b')
以上代码中共有三个参数,其中return a + b
是函数体,a
和b
是参数声明。
其含义是顺序声明两个参数a
和 b
,在函数体中使用这两个参数进行运算,并返回结果。
function anonymous(a, b) {
return a + b
}
这段代码是构造函数的返回结果,可见此处构建了一个匿名函数,带有两个参数a
和 b
,函数体是return a + b
。
应用场景
其应用场景基本与eval
等同,但Function构造函数由于不是立即执行,我们可以更灵活的选择执行时机。
- 重用远程代码片段
- 构建隔离作用域