public, private und “privileged” in Javascript
Jetzt wirds hässlich. Natürlich gibts “public” und “private” auch in Javascript. Allerdings, wie immer, ein bisschen anders:
Public
function Constructor(value) {
this.membername = value;
}
Constructor.prototype.membername = value;
myConst = new Constructor("foobar");
print myConst.membername; // prints 'foobar'
Private
function Constructor(value) {
var self = this;
this.membername1 = value; // public member
var membername2 = value + "private"; // private member
function membername() { // private method
print self.member; //access to public member in private method
print membername2; // access to private member in private method
}
}
myConst = new Constructor("foobar");
print myConst.membername1; // prints 'foobar'
print myConst.membername2; // prints 'undefined'
myConst.membername(); //no such function
Wenn man jetzt aber z.B. mittels dem property “prototype” auf private-members zugreifen will, dann wird man scheitern. “public” hat keinen Zugriff auf “private”. Dazu muss man die “privileged”-Methoden verwenden.
Privileged
function Constructor(value) {
this.membername = function membername() {
print "hi";
};
}
myConst = new Constructor("foobar");
myConst.membername(); // prints "hi"
- Javascript-Klassen und Objekte
- Javascript: getter und setter
- PHP hates me – eine Set-Klasse
- Klassenvariablen
- Vererbung in Javascript anhand von Exceptions
If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.
