new Function创建方法
正常的方法,如下:
代码语言:javascript复制function add(a,b) {
return a b;
}
// 或者
var add = function (a, b) {
return a b;
}
使用new Function
创建函数如下:
// 创建函数
var add = new Function('a', 'b', "return a b;");
// 使用
var result = add(1, 2); // result值为3
new Function最后一个参数是函数体,前面的参数是变量名称,全部都是字符串的形式。也就是:
代码语言:javascript复制var function_name = new Function(arg1, arg2, ..., argN, function_body);
new Function创建async方法
代码语言:javascript复制// 获取async函数的构造器
var AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;
// 通过上面的构造器创建async方法
const fetchPage = new AsyncFunction("url", "return await fetch(url);");
// 使用
fetchPage("/").then(response => { ... }); // 请求具体的网络