Sto provando a costruire un gioco e ho notato che per l'organizzazione potrebbe essere meglio inserire alcune funzioni all'interno di altre funzioni perché sono utilizzate esclusivamente nella funzione originale. Per esempio:Quale posizionamento della funzione Javascript è migliore?
function fn1()
{
fn2();
function fn2()
{
//Stuff happens here
}
}
fn1
viene chiamato molte volte, e fn1
chiamerà fn2
più volte nella sua esecuzione. Quando viene chiamato fn1
, il numero fn2
deve essere rielaborato (per mancanza di una parola migliore) ogni volta? Sto perdendo in termini di prestazioni a causa di questo? Dovrei invece inserire fn2
dopo fn1
, in questo modo?
function fn1()
{
fn2();
}
function fn2()
{
//Stuff happens here
}
Poiché non si racchiude la funzione di espressione tra parentesi, forse si vuole indicare esplicitamente che si sta chiamando immediatamente la funzione esterna. Materiale di lettura rilevante: http://benalman.com/news/2010/11/immediately-invoked-function-expression/. –
@FelixKling Ho aggiunto la parentesi per renderlo più ovvio. – Paulpro
+1 :-) Inoltre, puoi spiegare se la prima via dell'OP crea più copie di fn2 –