JavaScript предлагает гибкость при передаче аргументов в функции, включая возможность отправлять переменное количество аргументов из массива.
Как и Python, JavaScript имеет специальный объект аргументов, который представляет все переданные аргументы к функции. Этот объект содержит каждый аргумент как индексируемое свойство. Например:
function func() { console.log(arguments.length); for (arg in arguments) console.log(arg); } func('a', 'b', 'c', 'd'); // prints 4 and 'a', 'b', 'c', 'd'
Однако передача массива непосредственно в функцию в качестве аргументов не будет добиться желаемого результата. Вместо этого сам массив будет рассматриваться как один аргумент. Чтобы передать массив в качестве отдельных аргументов, вы можете использовать метод apply():
var arr = ['a', 'b', 'c']; function func() { console.log(this); // 'test' console.log(arguments.length); // 3 for (var i = 0; iЭто напечатает 'test', 3, 'a', 'b' и 'c'.
Распространение синтаксиса (ES6 )
Начиная с ES6, в JavaScript появился расширенный синтаксис (...), который обеспечивает более лаконичный способ достижения того же самого результат:
func(...arr);Это расширит элементы arr на отдельные аргументы, передаваемые в функцию.
Именованные параметры с расширенным синтаксисом (ES6) )
Вы также можете комбинировать именованные параметры с синтаксисом расширения, чтобы указать, что некоторые аргументы следует обрабатывать как массив:
function func(first, second, ...theRest) { //... }Заключение
JavaScript позволяет передавать переменное количество аргументов функциям через объект аргументов или, в ES6 и более поздних версиях, используя синтаксис расширения. Эта гибкость позволяет использовать различные варианты использования, например создавать универсальные функции, которые могут обрабатывать произвольное количество входных данных.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3