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?
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!