Come conservare i nomi dei parametri quando si utilizza bind per definire nuovi metodi

1

Sto scrivendo un oggetto javascript che racchiude le richieste REST. Per ogni operazione sul server esiste un metodo che accetta i parametri per la richiesta e un callback che riceverà i risultati. (Il metodo invia un jQuery $.ajax() -call e prepara le impostazioni per $.ajax() .)

Ogni metodo ha la stessa struttura: chiama un metodo personalizzato ( this.post() ), imposta alcuni parametri a valori costanti (ad esempio il nome dell'operazione) e passa altri parametri (ad esempio i parametri di richiesta e il callback). Ad esempio:

service.GetMessages = function(startIndex, onDone) {
    return this.post('GetMessages', startIndex, onDone);
}

Poiché molte di queste funzioni sono simili, possiamo usare Function.bind() per generare una" funzione associata "invece di definire manualmente tutte queste funzioni. Ad esempio (con RestService è la classe che sto scrivendo):

service.GetMessages = RestService.prototype.post.bind('GetMessages');

Lo svantaggio di questo approccio è che i parametri accettati da GetMessages ora non sono documentati; Ad esempio, quando si scrivono manualmente funzioni che associano i parametri, come nel primo approccio, la dichiarazione mostra che le funzioni accettano startIndex e onDone come parametri, con bind questa informazione è persa.

Come posso combinare evitando il codice ripetuto, come fatto tramite bind mentre conservi la documentazione fornita dalla dichiarazione di funzione?

    
posta Kasper van den Berg 03.11.2016 - 12:30
fonte

1 risposta

1

(Questo dovrebbe essere un commento, ma non ho abbastanza reputazione per crearne uno)

Che ne dici del "vecchio" modo di documentare il codice: i commenti? Ogni volta che usi la funzione bind (), puoi spiegare cosa sta succedendo nella riga sopra il codice (o sotto, ma di solito è sopra) con un commento, tanto dettagliato quanto ne hai bisogno.

    
risposta data 04.11.2016 - 14:53
fonte