Gibt es in ES6 eine Möglichkeit, einen übergeordneten Konstruktor aufzurufen, der Variadic-Argumente durchgibt, a la foo.apply(this, arguments)
? Ich habe nach einer Antwort gesucht, und die einzigen Instanzen, die ich sehe, sind entweder super()
(keine Argumente) oder Aufruf super(x, y)
(mit bestimmten Argumenten). super.apply(this, arguments)
scheint nicht zu funktionieren.ES6-Klasse super() mit Variadic-Argumenten
Antwort
Das Muster, das ich bequem und folgen finden ist
constructor(...args) {
super(...args);
}
Falls Sie haben und die Verwendung benannten Argumente könnten Sie diese stattdessen tun:
constructor(a, b, c) {
super(...arguments);
}
Referenzen:
Wenn Sie dies in einem Browser verwenden, beachten Sie bitte die Unterstützung von Spread-Operatoren, da die Unterstützung ziemlich neu ist und aus irgendeinem Grund Unterstützung für Der Spread-Operator kam später als andere ES6-Features wie "Klasse". Zum Beispiel glaube ich nicht, dass es IE-Unterstützung gibt. Sie könnten natürlich auch einen Transpiler verwenden. – jfriend00
@ jfriend00 IE unterstützt fast nichts von ES2015, also wen interessiert's :-) – zerkms
Es ist einfach zu finden, dass Chrome-Versionen nicht die neuesten sind und 'class' unterstützen, aber den Spread-Operator nicht unterstützen. Ich rate nur dem OP, um sicherzustellen, dass sie den Browser-Support haben, den sie brauchen. Werde nicht so defensiv. Dies ist eine nette Antwort, wenn Ihre Umgebung dies unterstützt. – jfriend00
- 1. Eine Super-Klasse Super-Klasse Super
- 2. Aufruf Super-Super-Methode
- 3. Generifying mit „super“
- 4. Mit randoms und super
- 5. Problem mit Super (Python 2.5.2)
- 6. Mehrfachvererbung in Python mit super()
- 7. Verwenden Super mit einer Klassenmethode
- 8. Mit super() in verschachtelten Klassen
- 9. Javascript Vererbung mit super() Anruf
- 10. Python super() Argumente: warum nicht super (obj)?
- 11. Problem mit variablem Bereich mit Super-Objekt
- 12. Was ist "Super" in Objective-C? (Selbst! = Super)?
- 13. Interface-Implementierung mit Methode Argument Super
- 14. Profiling Anlegestelle mit Visualvm ist super langsam
- 15. Wie CSS Ankreuzfelder mit Font Style Super
- 16. Kopieren von Datei mit Super User Access
- 17. Generics-Platzhalter mit "extends" und "super"
- 18. Wie vermeidet man unendliche Rekursion mit super()?
- 19. Haxe Generieren Super-Aufruf mit Argumenten
- 20. begrenzt generische Methode mit ‚Super‘ Typ
- 21. Mit "this" beim Aufruf des Super-Konstruktors?
- 22. Beispiel mit Super Funktionsaufruf in UVM
- 23. Super seltsame segfault mit gcc 4.7 - Bug?
- 24. Verwendung von "Super" mit "?" in Java
- 25. Verschachtelte POJO mit Super-CSV lesen
- 26. Android mit Super User Permissions? Erlauben Zugang
- 27. jqGrid Pager Area - Mit Font Super Icons
- 28. define_method mit Super verursacht unendliche Rekursion
- 29. Fehler modale Probe mit Super außerhalb Konstruktor
- 30. Konstruieren der richtigen Python Fassadenklasse mit Super?
Der Spread-Operator ist eine bessere Anwendung. – Oriol
'super.constructor.apply (this, arguments)' würde funktionieren, wenn 'this' bereits initialisiert wurde – Bergi