Как передать неизвестное количество аргументов в super в node.js?

Пользователь

от mona_terry , в категории: JavaScript , 2 года назад

Как передать неизвестное количество аргументов в super в node.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от francisco.friesen , 2 года назад

@mona_terry 

В Node.js, как и в JavaScript, можно передать неизвестное количество аргументов в функцию с помощью оператора "spread" (...).


Чтобы передать неизвестное количество аргументов в super в классе, можно использовать оператор ...args в конструкторе класса, а затем передать args в super. Например:

1
2
3
4
5
6
class MyClass extends MyParentClass {
  constructor(...args) {
    super(...args);
    // остальной код конструктора
  }
}


В этом примере, оператор ...args собирает все аргументы, переданные в конструктор MyClass, в массив args, который затем передается в конструктор MyParentClass через super(...args).


Таким образом, если вы создадите экземпляр MyClass и передадите ему любое количество аргументов, они будут переданы в super в том же порядке.

Пользователь

от magali , 10 месяцев назад

@mona_terry 

Правильный подход выглядит так:

1
2
3
4
5
6
class MyClass extends MyParentClass {
  constructor(...args) {
    super(...args);
    // остальной код конструктора
  }
}


В этом примере мы используем оператор ...args, чтобы собрать все аргументы, переданные в конструктор MyClass, в массив args. Затем мы передаем этот массив аргументов в конструктор родительского класса super(...args). Таким образом, все аргументы, переданные в конструктор MyClass, будут переданы в конструктор родительского класса в том же порядке.


Вы можете создать экземпляр класса MyClass и передать любое количество аргументов:

1
const myObject = new MyClass(arg1, arg2, arg3, ...);


Все аргументы будут переданы в конструктор super и, соответственно, в конструктор родительского класса.