第一种方式
- //对于创建一个字符串的函数
- 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
来源网络 作者:星球小霸王