Nein, sobald einer Variablen ein Wert zugewiesen wird, wird der vorherige Wert dieser Variablen überschrieben. Es wird nirgends beibehalten. (Wenn dies der Fall wäre, wäre dies ein Albtraum für die Speicherverwaltung.)
Sie könnten eine Objekteigenschaft erstellen, die einen Verlauf beibehält, wenn Sie möchten, indem Sie eine Setter-Funktion verwenden. grobes Beispiel:
var obj = {
_fooValue: undefined,
fooHistory: [],
set foo(value) {
this.fooHistory.push(this._fooValue);
this._fooValue = value;
},
get foo() {
return this._fooValue;
}
};
obj.foo = 0;
obj.foo = 5;
obj.foo = 42;
console.log(obj.fooHistory);
In diesem Beispiel hat die Geschichte nicht den aktuellen Wert zu enthalten, nur die vorhergehenden, und es den aktuellen Wert in einer anderen Objekt-Eigenschaft speichert Mittel, die Bypass-Code könnte der Setzer. Es gibt viele Verbesserungen, die Sie tun können. Wenn Sie dachten, war es wichtig, können Sie es sperren mehr:
var obj = (function() {
// These two vars are entirely private to the object
var fooHistory = [];
var fooValue;
// The object we'll assign to `obj`
return {
set foo(value) {
fooHistory.push(fooValue);
fooValue = value;
},
get foo() {
return fooValue;
},
get fooHistory() {
// Being really defensive and returning
// a copy
return fooHistory.slice(0);
}
}
})();
obj.foo = 0;
obj.foo = 5;
obj.foo = 42;
console.log(obj.fooHistory);
Sie haben etwas damit durch google ?? –
Ohne eine History-Array-Variable zu verwenden, sehe ich diesen Arbeitskollegen nicht - ich könnte natürlich falsch liegen. – Terrance00
Nein, ich habe versucht, aber nicht gelingen – Coffee