Also ich habe diese IIFE, und aus Gründen der Konsistenz mit anderen ES6-Klassen habe ich für ein Plugin umgeschrieben, ich möchte dies auch in ES6-Klasse-Syntax umschreiben. Kann mir jemand zeigen, wie es geht?Wie umschreiben Sie dieses IIFE in eine ES6-Klasse?
Foo = (function(){
Foo.bar = function(a, b){
baz = new this(a, b);
return baz;
}
function Foo(a, b){
this.a = a;
this.b = b;
}
return Foo;
})();
ist Es ist sehr verwirrend mit 'foo' als auch dem globalen Namen der Klasse und einer lokale Funktion innerhalb der Klasse. – Barmar
Das IIFE gibt einfach eine Funktion mit einem einzelnen öffentlichen Mitglied zurück. Das IIFE wird nicht ausgenutzt, es kann ohne Probleme in eine einfache Funktionsdeklaration und eine Eigenschaftszuweisung umgewandelt werden. Es gibt keine Klassen in Javascript (ECMAScript). Es gibt Funktionen, die Konstruktoren sein können. – RobG
Es gibt eine 'class' Deklaration, die ES6 Syntax für die Definition aller verwandten Funktionen und Objekte ist: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes – Barmar