In ES6, c'è un modo per chiamare un costruttore genitore che passa attraverso argomenti variadici, a la foo.apply(this, arguments)
? Ho cercato una risposta, e gli unici casi che vedo sono o chiamando super()
(senza argomenti) o chiamando super(x, y)
(con argomenti specifici). super.apply(this, arguments)
non sembra funzionare.ES6 classe super() con argomenti variadici
risposta
Il modello trovo conveniente e seguo è
constructor(...args) {
super(...args);
}
Nel caso in cui si dispone di veicoli e sull'uso di nome argomenti si potrebbe fare questo, invece:
constructor(a, b, c) {
super(...arguments);
}
Riferimenti:
Se si sta utilizzando questo in un browser, sii consapevole del supporto dell'operatore di spread in quanto il supporto è abbastanza nuovo e per qualche motivo il supporto per l'operatore di spread è arrivato più tardi rispetto ad altre funzionalità di ES6 come 'class'. Ad esempio, non penso ci sia alcun supporto IE. Potresti, ovviamente, usare anche un transpiler. – jfriend00
@ jfriend00 IE non supporta quasi nulla da ES2015, quindi, chi se ne frega :-) – zerkms
È facile trovare versioni di Chrome che non sono le più recenti e supportano 'class', ma non supportano l'operatore di spread. Sto solo avvisando l'OP per assicurarmi che abbia il supporto del browser di cui hanno bisogno. Non essere così difensivo. Questa è una bella risposta se il tuo ambiente lo supporta. – jfriend00
L'operatore di spread è la migliore applicazione. – Oriol
'super.constructor.apply (this, arguments)' funzionerebbe se 'this' fosse già inizializzato – Bergi