2015-08-29 22 views
5

Jak naprawić poniższy kod, aby móc wywołać metodę klasy przy użyciu call.Przekazywanie metody klasy ES6 jako argumentu funkcyjnego do wywołania funkcji

definicja

Klasa:

class User { 
    constructor(..) {...} 
    async method(start, end) {} 
} 

stara się przekazać metodę klasy jako argument funkcji:

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); 
} 

Odpowiedz

4

sposób użytkownik jest nieokreślona, ​​ponieważ Użytkownik nie odnosi się do konstruktora

You "Szukam User.prototype.method:

async function getData(req, res) { 
    await get(req, res, User.prototype.method); 
} 

Pamiętaj, że rzeczy klasy ES6 to cukier syntaktyczny na szczycie prototypowej natury tego języka.

+0

O tak. Głupie pytanie :) Dzięki! – krl

Powiązane problemy