Пропустить аргументы в JS

У меня есть функция example(arg1,arg2,arg3,arg4), и она для чего-то использует arg4. Есть ли способ пропустить другие аргументы вместо того, чтобы использовать их как неиспользуемые переменные.

Я попробовал example(,,,arg4), но это не работает

Вы не можете их пропустить, но можете указать значения по умолчанию (пустые строки, null и т. д.) в зависимости от того, как вы реализовали функцию. При этом лучшим подходом было бы изменить функцию, чтобы она принимала объект, свойства которого вы можете включать/опускать по желанию.

Rory McCrossan 26.07.2024 11:04

В JavaScript нет поддержки того, что вы хотите сделать. Поэтому лучший подход — спроектировать свой API так, чтобы более необязательные аргументы находились в конце списка, а наиболее часто передаваемые аргументы — в начале.

Pointy 26.07.2024 11:05

Вы спрашиваете об определении функции с неиспользуемыми параметрами, верно? Не звонишь?

Ry- 26.07.2024 11:21

Если аргументы с 1 по 3 не используются, а внутри тела функции необходим/используется только аргумент 4 – почему вы определяете функцию таким образом?

Davi 31.07.2024 12:43
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
62
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Если вы ищете компактный способ вставки набора значений null в аргументы функции, возможно, это вам подойдет.

Создайте вспомогательную функцию, которая генерирует массив нулевых значений.

const no = howMany => Array(howMany).fill(null);

Затем, когда вы вызываете свою функцию, просто распространите результат этого помощника на свои аргументы.

то есть

//instead of 
example(null, null, null, someVar4);
//do
example(...no(3), someVar4);

Если у вас есть контроль над созданием этой функции, которую вы используете, есть более эффективные способы выполнить подобную задачу, но в качестве прямого ответа на заданный вами вопрос, надеюсь, это поможет :) Если вам нужны какие-либо объяснения/ разъяснения, спрашивайте.

Ответ принят как подходящий

Вы можете создать функцию-оболочку, которая принимает объект вместо четырех аргументов и преобразует его в вызов исходной функции. Затем вы можете указать аргументы, которые хотите предоставить, по имени:

function example(arg1,arg2,arg3,arg4) {
    console.info(arg1,arg2,arg3,arg4); // Mock implementation: just prints the four arguments
}

// Wrapper that takes object instead of separate arguments
function example2({arg1, arg2, arg3, arg4} = {}) {
    return example(arg1, arg2, arg3, arg4);
}

// Example use: only providing arg4:
example2({arg4: 1});

Вы можете сделать это, если измените свои параметры и способ их передачи. Посмотрите на этот пример:

function test({ a = null, b = null, c = null } = {}) {
  a ? console.info({ 'a': a }): ''
  b ? console.info({ 'b': b }): ''
  c ? console.info({ 'c': c }): ''
}

// Calling the function with all parameters
test({ a: 1, b: 2, c: 3 });

// Calling the function with only one parameter
test({ b: 'Only pass b' });

// Calling the function with no parameters
test();

Другие вопросы по теме