Ich habe eine Funktion, die nur innerhalb einer Klasse verwendet werden kann und nicht außerhalb der Klasse zugänglich sein soll.Wie deklariert man lokale Funktion innerhalb der ES6-Klasse?
class Auth {
/*@ngInject*/
constructor($http, $cookies, $q, User) {
this.$http = $http;
this.$cookies = $cookies;
this.$q = $q;
this.User = User;
localFunc(); // Need to create this function, and need it to be accessible only inside this class
}
}
Was ich bisher getan haben, ist die Funktion außerhalb der Klasse erklärt
function localFunc() {
return 'foo';
}
class Auth {
...
}
Allerdings ist dies nicht gut, wie es die globale Funktion verunreinigen, ohne dass ich ihn innen IIFE gewickelt. Also, kann ich irgendwie eine lokale Funktion in einer ES6-Klasse erstellen?
Wenn Sie einen ES6-Modullader verwenden, wird die globale Klasse nicht durch Deklaration der Funktion außerhalb der Klasse verschmutzt. Es ist der Weg zu gehen, um private Funktionen in ES6 sicherzustellen – CodingIntrigue
@ MichałPerłakowski Ich glaube nicht, dass es ein Duplikat ist, die [vorgeschlagene kanonische] (https://stackoverflow.com/questions/22156326/private-properties-in-japascript-es6 -klassen) behandelt * Stateful, instance-spezifische Eigenschaften * not functions/methods. – Bergi