Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie kann ich über prototypdefinierte Funktionen in JavaScript auf private Mitglieder zugreifen?

Patricia Arquette
Freigeben: 2024-10-29 00:07:30
Original
896 Leute haben es durchsucht

How Can I Access Private Members from Prototype-Defined Functions in JavaScript?

Zugriff auf private Mitgliedsvariablen aus prototypdefinierten Funktionen

In JavaScript können Sie beim Definieren von Methoden im Konstruktor einer Klasse auf private zugreifen Variablen, die im Konstruktor deklariert werden. Beim Definieren von Methoden für den Prototyp wird der Zugriff auf diese privaten Variablen jedoch problematisch.

Zur Veranschaulichung:

<code class="js">function TestClass() {
    var privateField = "hello";
    this.nonProtoHello = function() { alert(privateField); };
}
TestClass.prototype.prototypeHello = function() { alert(privateField); };</code>
Nach dem Login kopieren

Der Aufruf von t.nonProtoHello() greift korrekt auf das private privateField zu, t.prototypeHello jedoch () löst einen Fehler aus. Dies liegt daran, dass prototypdefinierte Methoden nicht im Gültigkeitsbereich des Konstruktors definiert sind und daher nicht auf seine lokalen Variablen zugreifen können.

Leider gibt es keine Möglichkeit, von prototypdefinierten Funktionen direkt auf private Variablen zuzugreifen. Sie können jedoch eine ähnliche Funktionalität mit Getter- und Setter-Funktionen erreichen.

<code class="js">function Person(name, secret) {
    // Public
    this.name = name;

    // Private
    var secret = secret;

    // Public methods have access to private members
    this.setSecret = function(s) {
        secret = s;
    }

    this.getSecret = function() {
        return secret;
    }
}

// Must use getters/setters 
Person.prototype.spillSecret = function() { alert(this.getSecret()); };</code>
Nach dem Login kopieren

In diesem Beispiel ist das private Variablengeheimnis für prototypdefinierte Methoden über die Getter- und Setter-Funktionen zugänglich.

Das obige ist der detaillierte Inhalt vonWie kann ich über prototypdefinierte Funktionen in JavaScript auf private Mitglieder zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage