Класс ES6 super () с переменными аргументами

В ES6, есть ли способ вызвать родительский конструктор, передавая через переменные аргументы, аfoo.apply(this, arguments)? Я искал ответ, и единственные случаи, которые я вижу, это либоsuper() (без аргументов) или вызовsuper(x, y) (с конкретными аргументами).super.apply(this, arguments) не похоже на работу.

 Oriol19 июл. 2016 г., 00:58
Оператор распространения лучше применять.
 Bergi19 июл. 2016 г., 01:14
super.constructor.apply(this, arguments) будет работать, еслиthis был уже инициализирован

Ответы на вопрос(1)

Решение Вопроса

Шаблон, который я считаю удобным и следую

constructor(...args) {
    super(...args);
}

Если у вас есть и используются именованные аргументы, вы можете сделать это:

constructor(a, b, c) {
    super(...arguments);
}

Рекомендации:

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Spread_operatorhttps://kangax.github.io/compat-table/es6/
 Turner Hayes19 июл. 2016 г., 01:38
Ах, я не знал об использовании оператора распространения в качестве приложения, это очень удобно. Спасибо!
 jfriend0019 июл. 2016 г., 01:02
Легко найти используемые версии Chrome, которые не являются последними и поддерживаютclass, но не поддерживают оператор распространения. Я просто советую ОП убедиться, что у них есть поддержка браузера, в которой они нуждаются. Не становись таким оборонительным. Это хороший ответ, если ваша среда это поддерживает.
 zerkms19 июл. 2016 г., 01:00
@ jfriend00 IE не поддерживает почти ничего из ES2015, так что, кого это волнует :-)
 jfriend0019 июл. 2016 г., 01:00
Если вы используете это в браузере, просто помните о поддержке оператора распространения, поскольку поддержка является довольно новой, и по какой-то причине поддержка оператора распространения появилась позже, чем другие функции ES6, такие какclass, Например, я не думаю, что есть какая-либо поддержка IE. Вы могли бы, конечно, также использовать транспортер.

Ваш ответ на вопрос