564 Stimmen

Private Eigenschaften in JavaScript ES6 Klassen

Ist es möglich, private Eigenschaften in ES6-Klassen zu erstellen?

Hier ist ein Beispiel. Wie kann ich den Zugriff auf instance.property verhindern?

class Something {
  constructor(){
    this.property = "test";
  }
}

var instance = new Something();
console.log(instance.property); //=> "test"

0voto

Alex Punkte 123

Wie wir wissen, gibt es keine nativen Unterstützung für private Eigenschaften mit ES6-Klassen.

Im Folgenden ist nur das, was ich verwende (könnte hilfreich sein). Im Grunde wickle ich eine Klasse in die Factory ein.

function Animal(name) {
    const privateData = 'Es wurden KEINE Experimente an Tieren durchgeführt!';

    class Animal {
        constructor(_name) {
            this.name = _name;
        }
        getName() {
            return this.name
        }
        getDisclamer() {
            return `${privateData} Inklusive ${this.name}`
        }
    }
    return new Animal(name)
}

Ich bin ein Anfänger, also freue mich zu hören, ob dies ein schlechter Ansatz ist.

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