Il codice è fuorviante e in uno stile che fa pensare che l'ordine di esecuzione sia importante. Il motore JavaScript standard in questi giorni prenderà questo e riformattare prima di eseguirlo a:
var a = 1,
b = function() {
var a = function() {};
a = 10;
return;
};
b();
alert(a);
Ora si può capire che cosa sta realmente accadendo. "a" viene nuovamente dichiarato all'interno della funzione "b", quindi ora ci sono due variabili "a". Uno è "window.a" e l'altro è "b var a" ma NON "b.a" perché non accessibile al di fuori della chiusura o della funzione.
In altre parole, si ottiene ciò per cui si codifica.
Si prega di rendere leggibile il codice e di non confondere il punto.
fonte
2011-12-16 22:35:39
Grazie, potrei capire con questo codice riformattato. –
Quindi, suppongo che il punto principale di ciò sia che dovresti scrivere il tuo codice come se fosse già stato analizzato per primo. Porterà a una maggiore leggibilità. Douglas Crockford è colui da cui imparare. –
@ emeraldcode.com Personalmente sono d'accordo, ma ci sono persone a cui piace abbattere il codice in modo da poter vedere e leggere l'essenza della funzione in alto, con tutte le parti secondarie che verranno dopo. Quello stile è ciò che JavaScript (I * think *) sta cercando di facilitare. Personalmente ho imparato a codificare in Pascal nel corso della giornata, e hai dovuto fare le cose esattamente nel modo opposto :-) – Pointy