ho provato un po 'di JavaScript utilizzando la console Google Chrome version 28.0.1500.95 m
e sono alla ricerca di un po' più di comprensione di come funziona: Date un'occhiata al codice qui sotto:JavaScript Object proprietà loggato Google Chrome Console prima Dichiarazione
var obj = {
a: 99,
f: function() { }
}
console.log(obj.a)
console.log(obj.z)
console.log(obj)
o.z = 100;
emette i seguenti risultati:
99
undefined
Object {a: 99, f: function}
a: 99
f: function() { }
z: 100
__proto__: Object
la mia domanda è, perché è z
visibile nei risultati quando non è stato dichiarato fino a dopo il registro?
Sto assumendo che questo è qualcosa con come funziona la console e non una regola di scoping strana in JavaScript, di cui non sono a conoscenza?
Qualcuno può dirmi cosa sta succedendo qui per favore?
Lol anche alla versione 28 l'unico miglioramento che hanno fatto è di aggiungere un tooltip quasi insuperabile che questo sta accadendo. – Esailija
Sto facendo un ordinamento in array: se sono diversi (cioè: sto ordinando un array qui), significa che ho scritto la mia logica di script in modo errato? Perché ciò che viene mostrato per primo non è lo stesso ordine di quello mostrato nella lista espansa. – efwjames
l'output della console non ha nulla a che fare con la tua logica di script (potresti ad esempio registrare l'array unito per ottenere l'ordine previsto nel log) –