new Function()

第一种方式

  //对于创建一个字符串的函数
   var test = new Function('arg','console.log(arg+1)');
    test(2) ; //3
  //其等价于
    var test = function(arg) {
      console.log(arg + 1);
    }
    test(2); // 3

第二种方式

var test = new Function(arg,'console.log(arg+1)');
var arg = 2;
test();//3

第三种方式

我们甚至不需要显式地传参数给这个函数。我们使用apply方法来调用它。它会自动设定函数执行的上下文。这就是为什么我们能在函数里面使用this.arg。这里this指向data对象。

var data = {arg:2}
var test = new Function('console.log(this.age+1)').apply(data); //3

你可能感兴趣的:(new Function())