Из -за ошибок дизайна языка аргументы можно рассматривать как массив.
Кода -копия выглядит следующим образом:
функция Zero () {
console.log (аргументы [0]);
}
Будет
Кода -копия выглядит следующим образом:
функция Zero () {
for (var i = 0; i <arguments.length; i ++) {
console.log (аргументы [i]);
}
}
Он использует тот факт, что JavaScript - это Javasc
Переменная аргументов здесь предоставляет массивоподобный интерфейс для фактических аргументов. Из -за переменных параметров аргументов здесь мы можем использовать эту интересную вещь, чтобы сделать некоторые интересные вещи, такие как перегрузка.
Javscript reload
Есть вопрос о перегрузке на StackVoerFlow, поэтому первый ответ
Кода -копия выглядит следующим образом:
if (typeof frow === "не определен") {
} еще {
}
Еще один ответ
Кода -копия выглядит следующим образом:
Switch (Arguments.length) {
Случай 0:
// вероятно ошибка
перерыв;
Случай 1:
// что -нибудь делай
перерыв;
Случай 2:
по умолчанию: // провалиться, чтобы справиться с случаем большего количества параметров
// Сделай что -нибудь еще
перерыв;
}
Но этот метод действительно не очень красивый. Наша функция в конечном итоге станет такой?
Кода -копия выглядит следующим образом:
функция Zero1 () {
console.log ('аргументы 1')
};
функция Zero2 () {
console.log ('аргументы 2')
};
функция Zero () {
if (arguments.length == 1) {
Zero1 ();
} еще{
Zero2 ();
}
}
Это действительно не очень красиво. Даже если мы изменим переключатель ... чехол, он не будет хорошо выглядеть.
Аргументы JavaScript не являются массивом
Аргументы не всегда являются массивом, как мы видим, а иногда нет.
Кода -копия выглядит следующим образом:
функция hello () {
console.log (аргументы типа);
}
Здесь тип аргументов является объектом, хотя тип массива также является объектом, хотя мы можем преобразовать его в массив
Кода -копия выглядит следующим образом:
var args = array.prototype.slice.call (аргументы);
Но это также показывает, что это не массив, у него есть только единственное свойство массива, то есть длину. В дополнение к этому
Arguments.callee
Ссылка на функцию выполнения в настоящее время.
Arguments.caller
Ссылка на функцию, которая вызывала функцию выполнения в настоящее время.
Arguments.length
Ссылка на количество аргументов, передаваемых функции.