2015-08-29 18 views
5

Come correggere il codice di seguito per poter richiamare il metodo di classe utilizzando call.Passaggio del metodo di classe ES6 come argomento di funzione da chiamare all'interno della funzione

definizione

Classe:

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

cercando di passare metodo di classe come argomento di funzione:

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

risposta

4

metodo utente non è definito, dal momento che l'utente si riferisce al costruttore

È Sto cercando User.prototype.method:

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

Ricordate che la roba di classe ES6 è lo zucchero sintattico in cima alla natura prototipica della lingua.

+0

Oh sì. Domanda stupida :) Grazie! – krl

Problemi correlati