2011-11-29 14 views
5

Mi piacerebbe essere ragionevolmente competente con JavaScript e familiarità con molti dei diversi modi di ottenere la stessa cosa. Ma oggi mi sono imbattuto in un po 'di sintassi della funzione che non avevo mai visto prima:Funzione JavaScript Sintassi Spiegazione: function object.myFunction() {..}

function document.body.onload() 
{ 
    alert('loaded'); 
} 

Se dovessi scrivere tale codice avrei fatto così:

document.body.onload = function() 
{ 
    alert('loaded'); 
} 

Ignorando il fatto che questo non è il modo migliore per gestire l'evento onload, è questo JavaScript valido? Sembra che causi errori di sintassi in FireFox (e JSLint), quindi suppongo che si tratti solo della sintassi di Internet Explorer? Se si tratta di IE, solo allora vorrei rimuoverlo, ma sono preoccupato che potrebbe avere qualche effetto secondario bizzarro.

risposta

10

function document.body.onload è una sintassi JavaScript non standard. Usa il secondo formato e licenzia chiunque abbia scritto il codice originale.

Non dimenticare il punto e virgola dopo la fine }
document.body.onload = function() { 
    ...code... 
}; //this is easy to miss 
1

No, non è valida. la variante function X() {} richiede che il nome della funzione contenga solo lettere, cifre, "$" e "_".

Se si desidera controllare un'altra sintassi, è possibile get the standard here, ma i diagrammi di sintassi nella parte posteriore di JavaScript: The Good Parts sono molto più facili da digerire.

Problemi correlati