Anonymous Klasse-Instanz-ist es eine schlechte Idee?

In ES6 wir tun können anonyme Klasse:

var entity = class {
}

Aber wir können auch instanziieren:

var entity = new class {
    constructor(name) { this.name = name; }
    getName() { return this.name; }
}('Foo');
console.log(entity.getName()); //Foo

Was geschehen ist dahinter, welche Vorteile bringt es und welche Einschränkungen wird es auch bringen?

  • Warum nicht einfach ein Objekt-literal? oder eine tatsächliche Konstruktor-Funktion?
  • Persönlicher Geschmack, ich mag C++ und Java gestylt object-Deklaration.
  • Ich glaube nicht, dass es etwas anderes zwischen diesem und dem normalen Prototypen-Klasse-Erstellung. Es sind nur Unterschiede in der syntax. quora.com/...
  • Sieht aus wie dieser blog-Eintrag ist anständig genug zu sein, im Zusammenhang zu meiner Frage: jasonwyatt.co/post/866536821/...
  • ES5 hat anonyme Konstruktoren zu: entity = new function(name) { this.name = name }("Foo"). class ist nur syntaktischer Zucker für einen Konstruktor und einige extras. Also, wenn es gibt anonyme Konstruktoren dann gibt es anonyme Klassen.
  • Getan. Danke für den Hinweis it out.
  • Ich sehe niemand gefragt ähnliche Frage gestellt, bevor, so würde ich mag, um zu stoppen für die Beratung.
  • Vor allem, dass es wahrscheinlich nicht tun, was Sie denken, es funktioniert
  • Eigentlich das Beispiel, das Sie gepostet wirft einen TypeError: Cannot set property name of [object Object] which has only a getter
  • Oops. Fixiert es. Danke. @Bergi

InformationsquelleAutor Steve Fan | 2016-08-03
Schreibe einen Kommentar