Показать страницуИстория страницыСсылки сюдаCopy this pageExport to MarkdownODT преобразованиеНаверх Вы загрузили старую версию документа! Сохранив её, вы создадите новую текущую версию с этим содержимым. Медиафайлы===== Функции ===== <code php> # Функция с определенным кол-вом параметров function f(a, b, c, d) { console.log(a + b + c + d) } # Обычный способ вызова f(1, 2, 3, 4); # f.call() # Метод call жёстко фиксирует количество аргументов, через запятую f.call(context, 1, 2, 3, 4); # Вызов функции при помощи func.apply работает аналогично func.call, но принимает массив аргументов вместо списка: f.apply(context, [1, 2, 3, 4]); </code> При помощи call/apply можно легко взять метод одного объекта, в том числе встроенного, и вызвать в контексте другого. <code php> function sayHi() { # Используем эту технику для упрощения манипуляций с arguments. Как мы знаем, это не массив, а обычный объект.. Но как бы хотелось вызывать на нём методы массива. arguments.join = [].join; // одолжили метод (1) var argStr = arguments.join(':'); // (2) alert(argStr); // сработает и выведет 1:2:3 } sayHi(1, 2, 3); </code>СохранитьПросмотрРазличияОтменить Сводка изменений Примечание: редактируя эту страницу, вы соглашаетесь на использование своего вклада на условиях следующей лицензии: CC0 1.0 Universal