Виклик функції з значенням за замовчуванням для першого аргументу та індивідуальним значенням для другого аргументу в JavaScript

pic

В JavaScript функції можуть бути визначені з параметрами за замовчуванням. Це означає, що якщо аргумент не переданий для параметра під час виклику функції, буде використано значення за замовчуванням.

Розглянемо наступну функцію:

function greet(name = "World", greeting = "Hello") {  
 console.log(`${greeting}, ${name}!`);  
}

У цій функції name за замовчуванням має значення "World", а greeting за замовчуванням — "Hello". Якщо ми викликаємо greet() без аргументів, виводиться "Hello, World!".

А що, якщо ми хочемо використовувати значення за замовчуванням для name, але передати нове значення для greeting?

Один зі способів досягти цього — передати undefined як перший аргумент. Це змусить JavaScript використати значення за замовчуванням для цього аргументу.

function greet(name = "World", greeting = "Hello") {  
 console.log(`${greeting}, ${name}!`);  
}  

greet(undefined, "Hi"); // "Hi, World!"

Однак передача undefined як аргумент може бути вводом в оману, оскільки це може означати, що аргумент навмисно встановлено в undefined.

Більш елегантним рішенням буде використання об'єкта налаштувань як параметра функції. Це дозволяє передавати об'єкт тільки з тими властивостями, які ми хочемо встановити, а для решти буде використовуватись значення за замовчуванням.

Ось як ми можемо змінити функцію greet, щоб вона використовувала об'єкт налаштувань:

function greet({ name = "World", greeting = "Hello" } = {}) {  
 console.log(`${greeting}, ${name}!`);  
}

Тепер ми можемо викликати greet з новим значенням для greeting, і буде використано значення за замовчуванням для name:

greet({ greeting: "Hi" }); // Виведе: "Hi, World!"

Цей підхід є більш явним і менш схильним до помилок, оскільки чітко видно, які параметри встановлюються, а які використовують свої значення за замовчуванням.

pic

Спочатку опубліковано на https://tahajiru.com.

Перекладено з: Invoke Function with Default Value for First Argument and Custom Value for Second Argument in JavaScript

Leave a Reply

Your email address will not be published. Required fields are marked *