Ho un sacco di JavaScript dalla notte dei tempi, con chiamate di funzione scritte in questo modo:Patterns JavaScript: Contesto di Chiamata funzione
THING.someFunction.call(THING);
Mi sembra che dovrebbero sempre essere equivalente a:
THING.someFunction();
Queste due chiamate sono sempre equivalenti? E le vecchie versioni di JavaScript?
Mi sembra che lo scopo del secondo THING
in quella prima riga di codice sia quello di impostare il contesto (this
) all'interno di someFunction
. Ma il contesto all'interno di quella funzione dovrebbe già essere THING
per impostazione predefinita, giusto?
Giusto per essere chiari, THING
si definisce qualcosa di simile:
var THING = function() {
// private vars
return{
// code
someFunction : function() {
// code
}
};
}();
Ora che hai il tuo codice, 'THING.someFunction' è' indefinito'. – gilly3
Credo che manchino le parentesi alla fine della dichiarazione di THING, ad es. COSA = function {}(); –