Javascript 将ES6类方法作为要在函数内调用的函数参数传递
如何修复下面的代码,以便能够使用Javascript 将ES6类方法作为要在函数内调用的函数参数传递,javascript,ecmascript-6,Javascript,Ecmascript 6,如何修复下面的代码,以便能够使用call调用类方法 类别定义: class User { constructor(..) {...} async method(start, end) {} } 尝试将类方法作为函数参数传递: const User = require('./user'); async function getData(req, res) { // User.method is undefined, since User refers to User cons
call
调用类方法
类别定义:
class User {
constructor(..) {...}
async method(start, end) {}
}
尝试将类方法作为函数参数传递:
const User = require('./user');
async function getData(req, res) {
// User.method is undefined, since User refers to User constructor
await get(req, res, User.method);
}
async function get(req, res, f) {
let start = ...;
let end = ...;
let params = ...;
let user = new User(params);
// f is undefined here
let stream = await f.call(user, start, end);
}
用户方法未定义,因为用户引用构造函数
您正在寻找User.prototype.method
:
async function getData(req, res) {
await get(req, res, User.prototype.method);
}
请记住,ES6类的内容是语言原型本质之上的语法糖