Javascript-Nummern unveränderlich

7

Ich komme aus dem c # -Hintergrund, wo immutable mit public get, private set-Eigenschaften erreicht wird. Ich habe gelesen, dass Zahlen in Javascript unveränderlich sind, also wie kann ich das folgende tun

%Vor%

Ich habe x geändert, was ich nicht konnte?

    
Noel 23.11.2011, 20:23
quelle

2 Antworten

19

Die Zahlen selbst sind unveränderlich. Die Referenzen auf sie, die in der Variablen gespeichert sind, sind nicht.

So bekommt 6 / 2 einen Verweis auf das unveränderbare 3 , und dann weist = 8 dem unveränderlichen 8 einen neuen Verweis zu.

    
Quentin 23.11.2011, 20:24
quelle
1

Mit C # kann ein Programmierer auch ein Objekt erstellen, das nach der Konstruktion nicht geändert werden kann (unveränderbare Objekte). Wenn Sie ein neues Objekt in C # einem unveränderlichen Objekt zuweisen, z. B. einer Zeichenfolge. Sie erhalten eine neue Zeichenfolge, anstatt das Original zu ändern.

Was Sie hier demonstriert haben, ist gar nicht so anders. Sie können stattdessen const versuchen

%Vor%

Referenz

  

Syntax

     

const varname1 = wert1 [, varname2 = wert2 [, varname3 = wert3 [,   ... [, varnameN = wertN]]]];

     

Browserkompatibilität

     

Die aktuelle Implementierung von const ist eine Mozilla-spezifische Erweiterung   und ist nicht Teil von ECMAScript 5. Es wird in Firefox & amp unterstützt; Chrom   (V8). Ab Safari 5.1.7 und Opera 12.00, wenn Sie eine Variable definieren   Mit const in diesen Browsern können Sie den Wert später noch ändern. Es   wird in Internet Explorer 6-9 oder in der Vorschau von nicht unterstützt   Internet Explorer 10. Das const-Schlüsselwort deklariert derzeit den   Konstante im Funktionsumfang (wie Variablen, die mit var deklariert sind).

    
P.Brian.Mackey 23.11.2011 21:11
quelle

Tags und Links