Как да направите извикване на функция с различни параметри

Добър ден на всички!

Как се обработват параметрите при извикване на функция? Например има следното:

Но можете да го наречете и така:

Как се обработват тези параметри в Bar? Можете да си пъхнете носа къде да четете. Благодаря ви.

Обикновено всичко се прави ръчно:

Но трябва да внимавате с. Това се прилага само когато се очаква предаваните параметри да не саfalse(с двойни равни). Тези. акоxможе да приеме нулева стойност, тогава ще трябва да направите това вече:

Е, или използвайте trenary оператора, както вече беше написано.

UPDНека обясня логиката. В js няма незадължителни параметри. Въпреки това, ако дадена функция е декларирана с един брой аргументи и е извикана с по-малко, тогава няма да възникне грешка и всички непопълнени параметри стават недефинирани в контекста на функцията. И за да ги попълните с някои данни по подразбиране, използвайте логическото или - . След това има израз: foo bar. Ако foo се изчисли като false, тогава изразът ще върне втория операнд. Ако foo е вярно, тогава ще върне първото (поради мързела на оператора). Тук има един тънък момент. undefined съответства на false. Въпреки това, ако функцията позволява foo стойности, които могат да съвпадат с false (null, false, <>, [], ''), тогава този израз няма да работи правилно. Трябва да запомните това и да управлявате подобни случаи с . И разбира се, този израз е приложим и в обикновени функции (всъщност функцията конструктор и обикновената функция не се различават, те се различават само по употребата си, а именно ключовата думаnew). В този случай напишете така:

Е, във вашия пример полетата на предадения обект се проверяват по абсолютно същия начин: ако полето не е предадено нафункция, тя ще върне недефинирана, когато бъде извикана от обект.