也就是说eval()会干扰到当前函数的作用域。。 JavaScript new Function() Function 构造器创建一个新的Function 对象. 在JavaScript中每个函数(function)实际是一个Function对象. 使用Function构造器生成的Function对象是在函数创建时被解析的。这比你使用函数声明(function)并在你的代码中调用低效,因为使用函数语句声明的function是跟其他语句一起解析的。 New Function() 相比之下会比较低效,而这也是当前情况下我们所能预知的。 一个简单的示例如下所示: 复制代码 代码如下: var add = new Function(["x", "y"], "return x + y");
new Function()会将字符串解析为函数。。然后我们可以通过apply来执行 复制代码 代码如下: Function.apply(null, args)