Ho il seguente codice di depennazione:Perché le esportazioni di un modulo devono essere dichiarate nella parte inferiore di un file?
module.exports = {
read: read,
write: write,
};
var read = function(parameters, config, next) {
/* <snip> */
};
var write = function(parameters, config, next) {
/* <snip> */
};
Se vado a require()
il file altrove, andrà in crash nodo e dire che l'oggetto desiderato non ha un metodo read
o write
. Il sollevamento variabile non estrarrà le funzioni sopra lo modules.export = { ... };
?
Perché una variabile non viene issata sopra gli incarichi 'module.exports'? 'Module' è un oggetto nodo speciale che viene dichiarato e issato prima che venga eseguito il rendering di qualsiasi altro codice nel file? – Scott
Le variabili non vengono issate. Chiamate semplicemente funzioni dichiarate senza "var". –
Ahhh, è tornato indietro e ha riletto il tuo articolo collegato. La dichiarazione della variabile viene issata, ma il valore (nel mio caso una funzione) non viene assegnato fino a un momento successivo, mentre una funzione con nome verrà issata insieme alla sua logica. Gotchya. – Scott