Erfassen des aktuellen Werts einer Variablen

Habe ich eine variable myVariable sich ständig ändern. Irgendwann möchte ich erfassen die Wert von myVariable (nicht Referenz zu myVariable) in eine andere variable myVariableAtSomePoint.

Beispiel-code:

var myVariable = 1;

function test () {
    var myVariableAtSomePoint= myVariable;
    console.log(myVariableAtSomePoint);
}

myVariable = 2;

test(); //Prints 2, instead of 1.
  • ist myVariable ein Objekt?
  • Ja, es speichert eine Zahl (integer).
  • Was ist es über myVariableAtSomePoint = myVariable;, die nicht funktionieren?
  • Speichert Verweis myVariable (so dass myVariableAtSomePoint wird auch mit der Zeit ändern). Ich will myVariableAtSomePoint statisch sein.
  • Wenn Sie mit jQuery: var myVariableAtSomePoint = jQuery.extend({}, myVariable);. Wenn nicht, kopieren Sie die source-code/Idee für jQuery.extend von jQuery 😛
  • Auch Sie sagte, es ist nur "eine Zahl (integer)".
  • Ich glaube, er sagte, es ist ein Objekt, speichert eine Zahl(ex: {n:3} aber ich bin verwirrt, wie gut 😀
  • Ich habe Beispiel-code zu klären
  • Ich habe Beispiel-code zu klären
  • OK, gut, wenn es wirklich nur eine Zahl ist, dann ist dein Verständnis davon, was abtretungserklärung tut, ist falsch. Das einfache Zuweisung kopiert den Wert der Zahl (wie, 3 oder 2021 oder was auch immer) auf die andere variable, und spätere änderungen an der "myVariable" wird absolut nicht beeinträchtigt "myVariableAtSomePoint".
  • Wenn Sie möchten, um darüber nachzudenken, wie "kopieren einer Referenz", alternativ, dann denken von zahlen als unveränderliche Objekte. Der einzige Weg, um "myVariable" nehmen, die auf einem anderen numerischen Wert, es zu machen, verweisen auf eine unterschiedliche Anzahl Objekt. Auch diese änderung wirkt sich nicht auf "myVariableAtSomePoint".
  • Das problem ist nicht über Referenzen. Sie fordern test nach von Ihnen geänderten Wert. Der code in der test-Funktion wird erst ausgeführt, wenn Sie die Funktion aufrufen.

InformationsquelleAutor Randomblue | 2011-10-19
Schreibe einen Kommentar