Perché JSLint si lamenta se qualcosa utilizza una funzione che non è già stata definita? Il punto è che la funzione è definita - e se quel qualcosa chiama quella funzione, quella funzione esiste e le cose funzioneranno.Errore jsLint: "prima che fosse definita una funzione somefunction()"
Date un'occhiata al codice qui sotto:
function foo()
{
// calls bar()
};
function bar()
{
// calls foo()
};
Non c'è modo di organizzare i 2 metodi in modo tale che renderebbe JSLint felice. Come gestisco questo problema?
Ma questo è un po 'diverso da 'function foo()', essendo espressione di funzione e tutto. Inoltre, dichiarare che 'var foo, bar' in alto è superfluo a causa del sollevamento. Quindi, in breve, 'var foo = function() ..., var bar = function() ...' funzionerà bene tecnicamente. Inoltre, penso, considerando che le dichiarazioni di funzione sono caricate prima di qualsiasi altra cosa - JSLint dovrebbe già aggiustare le loro cose. – ZenMaster
@ZenMaster: un fork di 'jslint', [' jsHint'] (http://www.jshint.com/docs/), ha risolto il problema impostando '' latedef ': false' nelle opzioni. (Non influenza i nomi delle variabili, solo i nomi delle funzioni.) –
Questa risposta interromperà il codice che si basa sulla funzione di sollevamento della funzione ~ –