Javascript-Eigenschafts-Accessoren

In Javascript scheint die Verwendung von Eigenschafts-Accessoren nicht allzu verbreitet zu sein (im Gegensatz zu anderen OO-Sprachen wie beispielsweise Java).

Wenn ich eine habePerson Objekt mit einem Namen, definiert als

function Person(name) {
   this.name = name;
}

Der Name einer Person wird sich nicht ändern, aber ich möchte bei Bedarf darauf zugreifen können, sodass ich Folgendes tun kann:

function Person(name) {
   var name = name;
   this.getName = function() {
      return name;
   }
}

Selbst in einer dynamischen Sprache gelten meines Erachtens die Prinzipien der Verwendung von Gettern und Setzern auf dieselbe Weise wie für statisch typisierte OO-Sprachen (z. B. Kapselung, Hinzufügen von Validierung, Einschränkung des Zugriffs usw.).

Diese Frage wird möglicherweise als subjektiv geschlossen, aber ich bin gespannt, warum dieses Verhalten nicht häufiger auftritt (z. B. würden Java-Entwickler verrückt werden, wenn alles öffentlich wäre).

Gibt es eine "Standard" -Methode, um dies in Javascript zu tun? Ich habe gesehenObject.defineProperty, aber nicht alle Browser unterstützen das.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage