使用new Function创建async方法

2020-10-19 16:25:28 浏览数 (2)

new Function创建方法

正常的方法,如下:

代码语言:javascript复制
function add(a,b) {
  return a   b;
}

// 或者

var add = function (a, b) {
  return a   b;
}

使用new Function创建函数如下:

代码语言:javascript复制
// 创建函数
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 => { ... }); // 请求具体的网络

0 人点赞