Як роблять виклик функції з різними параметрами
Всім добрий день!
Як обробляти параметри під час виклику функції? Наприклад є таке:
Але можна викликати і так:
Як дані параметри обробляються в Bar? Можна тицьнути носом, де почитати. Дякую.
Зазвичай все вручну роблять:
Але треба бути обережнішим з. Це застосовно тільки тоді, коли передані параметри передбачаються не рівнимиfalse(з подвійним одно). Тобто. якщоxможе набувати нульового значення, то треба буде робити вже так:
Ну чи використовувати тренарний оператор, як уже написали.
UPDПоясню логіку. У js немає опціональних параметрів. Однак, якщо функція оголошена з однією кількістю аргументів, а викликають її з меншою, то помилки не виникне, а всі незаповнені параметри стають рівними undefined всередині контексту функції. І, щоб заповнити їх якимись даними за замовчуванням, використовують логічне або . Далі є вираз: foo bar . Якщо foo буде відповідати брехні, вираз поверне другий операнд. Якщо foo відповідає істині, то поверне перший (через лінивість оператора). Тут є тонкий момент. undefined відповідає брехні. Однак, якщо функція допускає значення foo, які можуть відповідати брехні (null, false, <>, [], ''), цей вираз не буде працювати правильно. Про це треба пам'ятати та обробляти такі випадки за допомогою. Ну і природно, цей вираз застосовно і в звичайних функціях (власне, функція-конструктор і звичайна функція нічим не відрізняються, їх відрізняє лише використання, а саме - ключове словоnew). У такому разі пишуть так:
Ну і в твоєму прикладі таким самим способом перевіряються поля переданого об'єкта: якщо поле не передано вфункцію, то при виклику його з об'єкта воно поверне значення undefined.