553 Stimmen

Private JavaScript-Methoden

Um eine JavaScript-Klasse mit einer öffentlichen Methode zu erstellen, würde ich etwas tun wie:

function Restaurant() {}

Restaurant.prototype.buy_food = function(){
   // something here
}

Restaurant.prototype.use_restroom = function(){
   // something here
}

Auf diese Weise können die Benutzer meiner Klasse:

var restaurant = new Restaurant();
restaurant.buy_food();
restaurant.use_restroom();

Wie kann ich eine private Methode erstellen, die von der buy_food y use_restroom Methoden, aber nicht von außen durch die Benutzer der Klasse?

Mit anderen Worten, ich möchte, dass meine Methodenimplementierung in der Lage ist, Folgendes zu tun:

Restaurant.prototype.use_restroom = function() {
   this.private_stuff();
}

Aber das sollte nicht funktionieren:

var r = new Restaurant();
r.private_stuff();

Wie definiere ich private_stuff als private Methode, so dass beides zutrifft?

Ich habe gelesen Doug Crockfords Bericht aber es scheint nicht so, als ob "private" Methoden von öffentlichen Methoden aufgerufen werden können und "privilegierte" Methoden von außen aufgerufen werden können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X