Heim  >  Artikel  >  Web-Frontend  >  Wie können wir private Methoden in JavaScript für eine verbesserte Kapselung simulieren?

Wie können wir private Methoden in JavaScript für eine verbesserte Kapselung simulieren?

Linda Hamilton
Linda HamiltonOriginal
2024-11-03 15:26:02147Durchsuche

How can we simulate private methods in JavaScript for enhanced encapsulation?

Überbrückung öffentlicher und privater Methoden in JavaScript

Während öffentliche Methoden externen Zugriff auf Klassenfunktionen ermöglichen, bieten private Methoden isolierte Operationen innerhalb der Klasse. JavaScript unterstützt private Methoden nicht nativ, aber innovative Ansätze können dieses Konzept nachahmen.

Stellen Sie sich das folgende Szenario vor:

<code class="javascript">function Restaurant() {}

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

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

In diesem Beispiel sind sowohl buy_food als auch use_restroom öffentliche Methoden, auf die von außen zugegriffen werden kann die Klasse. Wie können wir eine private Methode einführen, die nur diese öffentlichen Methoden aufrufen können?

Private Methoden mit lokalen Funktionen nachahmen

In JavaScript fehlen echte private Methoden, aber es ermöglicht uns, lokale Funktionen innerhalb von Klassenkonstruktoren zu erstellen die von außen nicht zugänglich sind. So geht's:

<code class="javascript">function Restaurant() {
    var myPrivateVar;

    var private_stuff = function() {  // Only visible inside Restaurant()
        myPrivateVar = "I can set this here!";
    }

    this.use_restroom = function() {  // use_restroom is visible to all
        private_stuff();
    }

    this.buy_food = function() {   // buy_food is visible to all
        private_stuff();
    }
}</code>

In diesem Beispiel ist private_stuff eine lokale Funktion innerhalb des Restaurant-Konstruktors. Es ist nicht Teil des Prototyps und nur über die Methoden use_restroom und buy_food zugänglich.

Dieser Ansatz behält die gewünschte Trennung zwischen öffentlichen und „privaten“ Methoden bei und ermöglicht letzteren gleichzeitig, nahtlos innerhalb der Klasse zu funktionieren.

Das obige ist der detaillierte Inhalt vonWie können wir private Methoden in JavaScript für eine verbesserte Kapselung simulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn