Аргументи псевдо-масив - аргументи

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

Може да има само една функция с име log, която може да бъде извикана с всякакви аргументи.

И вече вътре тя може да види с какво е причинена и да работи по различни начини.

Достъп до "допълнителни" аргументи

Как да получите стойностите на аргументите, които не са в списъка с параметри?

Те са достъпни чрез аргументите "псевдо-масив".

Той съдържа списък с аргументи, номерирани: аргументи [0], аргументи [1] ..., както и свойството дължина .

Например, нека изброим всички аргументи:

Всички параметри са в аргументи, дори ако са в списъка. Кодът по-горе ще работи по същия начин, ако функцията е декларирана sayHi (a, b, c) .

В резултат на това промените в аргументите засягат параметрите и обратно.

Освен ако не използвате строг режим, така че променливите да не се променят "неочаквано", препоръчително е никога да не променяте аргументи .

аргументи не е масив

Често срещана грешка при начинаещи се опитва да приложи методите на масив към аргументи. Това е невъзможно:

Въпросът е, че аргументите не са масив .

Всъщност това е обикновен обект, просто клавишите са цифрови и са с дължина. Тук приликите свършват. Той няма никакви специални методи и не поддържа и масивни методи.

Никой обаче не си прави труда да прави редовен масив от аргументи, например:

Такива обекти понякога се наричат ​​„колекции“ или „псевдо-масиви“.

Понякога възниква задачата - да копирате свойства от един или няколко други в съществуващ обект.

За да комбинирате множество обекти в един:

За да създадете копие на потребителския обект:

Такъв „клонинг“ на обект може да бъде полезен, когато искаме да променим свойствата му, без да докосваме оригиналния потребителски обект .

При нашето изпълнение ще копираме само свойствата на първото ниво, т.е. вложените обекти не се обработват по специален начин. Той обаче може да бъде разширен.

И тук е изпълнението:

Аргументи по подразбиране чрез ||

Ако функцията се извика с по-малко аргументи от посоченото, тогава липсващите аргументи се считат за недефинирани .

Често, при липса на аргумент, ние искаме да му присвоим някаква „стандартна“ стойност или, с други думи, стойност по подразбиране. Това може да се направи удобно с помощта на логически оператор ИЛИ || .

Например функцията showWarning, описана по-долу, трябва да показва предупреждение. За да направите това, са необходими ширина, височина, заглавие и съдържание, но повечето от тези аргументи не са задължителни: