Ich habe experimentiert mit Javascript Objekt Literal Notation vs Funktionen mit Prototypen und habe in einen Fehler, den ich nicht herausfinden kann laufen.Unerwartete Verhalten mit Javascript Objekt Literal Notation
Hier ist der entsprechende Code:
var MyTestObj = {
myTestFunction: function() {
var myArray = []
console.log('Before:');
console.log(myArray);
console.log(myArray.length);
console.log('---');
for (var mi = 0; mi < 5; mi++) {
myArray.push(1);
}
return myArray;
}
}
Wenn ich rufe console.log (arr) ich es erwartet hatte Ausgang [], sondern ich dieses:
> MyTestObj.myTestFunction()
Before:
[1, 1, 1, 1, 1]
0
---
[1, 1, 1, 1, 1]
Kann jemand erklären, warum myArray hat bereits einen Wert, wenn ich es vor der Schleife ausgab? Und warum gibt es unmittelbar danach die richtige Länge (0) aus?
Schätzen Sie die Hilfe.
http://stackoverflow.com/a/8249333/798880 – Saxoier
Protokollierung auf der Konsole ein weirdly langsamer Vorgang ist, ich denke, es ist nur ein Leistungsproblem gibt ... Als es um tatsächlich bekommt zu schreiben Es ist bevölkert. Geschieht mir gelegentlich, wo ich ein Objekt protokollieren werde, das zerstört/gelöscht wird, und ich kann auf keine seiner Eigenschaften zugreifen. – JKing