Es verhindert a
(in Ihrem Beispiel) aus einer anderen Referenz zugewiesen werden, aber Eigenschaften innerhalb des Objekts werden häufig geändert werden muß, da sie den aktuellen Zustand der Objektinstanz vermitteln.
Eine einfache Analogie, die hier richtiger ist?
var me = "Scott";
const me = "Scott";
Was passiert, wenn das passiert?
me = you;
Lasst uns die Tatsache vergessen, dass, im wirklichen Leben, können Sie, wenn Sie es wirklich wollen Namen ändern. In diesem Fall me
sollte immer und ewig verweisen, nun, ich - "Scott" so const
ist die bessere Erklärung.
Aber in meinem Leben werden sich die Eigenschaften von mir ändern, einige, die ich nicht kontrollieren kann und andere, die ich kontrolliere. Während wir also ein anderes Objekt verweisen nicht auf die me
Referenz ändern möchten, Aspekte des Objekts, me
Verweist der Lage sein sollte geändert werden:
const me = {};
me.height = "6' 1"; // Used to be 6' 3" back in the day!
Aber, wenn Sie einen konstanten Wert benötigt In einem Objekt können Sie eine private Variable in einer Konstruktorfunktion deklarieren, um dies zu tun.
function Me(height){
// Some aspects of this object will never change. They can be set up
// as private data:
const bloodType = "B+";
// Others are just properties:
this.height = height;
}
Oder könnten Sie auch weiterhin ein Objektliteral verwenden, aber Sie müssen zu „sperren“, um bestimmte Eigenschaften, so dass du schreibgeschützt. Dies geschieht mit Object.defineProperty
.
'const' erstellt einen unveränderlichen Verweis, so dass Sie keinen anderen Wert zuweisen können. 'let' soll einen gemeinsamen Verweis erstellen, aber in den Gültigkeitsbereich eingegrenzt werden (Sie können ihn nicht außerhalb der Funktion verwenden). –
'const a = {};' bedeutet nur, dass 'a' immer dasselbe Objekt ist, nicht mehr und nicht weniger. – Xufox