Es gibt eine gute verallgemeinerte Methode zum Definieren privater und geschützter Eigenschaften und Methoden in Javascript, here on the site. Die aktuelle Version von Prototype (1.6.0) verfügt jedoch nicht über eine integrierte Möglichkeit, sie über ihre Syntax Class.create()
zu definieren.Verwenden von Class.create von Prototyp zum Definieren privater/geschützter Eigenschaften und Methoden
Ich bin gespannt, was die besten Praktiken sind, wenn Entwickler private und geschützte Eigenschaften und Methoden bei der Verwendung von Prototype definieren möchten. Gibt es einen besseren Weg als den allgemeinen?
Awesome. Vielen Dank. Ich habe auch die Antwort von TML gewählt, da der Link, den er enthält, eine vollständige Diskussion zu diesem Thema enthält und zeigt, warum andere (sauberere) Implementierungen nicht funktionieren. –
@SleepyCod: Wie würden Sie eine vollständig gekapselte private Variable definieren, also eine, die keinen Setter oder Getter hat? Ihr Beispiel hat einen Getter, so dass andere Klassenmethoden das Feld erhalten können, das aber das Feld der Außenwelt zugänglich macht. – JoJo
@Christophe Eblé Dies ist keine private Methode. Use var getProtectedMember = function() {... Es ist dann jedoch nicht möglich, innerhalb anderer Methoden auf diese Methode zuzugreifen, aber auf sie kann nicht von außerhalb der Klasse zugegriffen werden. Ich untersuche, ob es möglich ist, dass eine Methode von innen, aber nicht von außen zugänglich ist ... –