English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Метод apply() вызывает функцию с заданным значением this и предоставляет параметры в виде массива (или объекта, подобного массиву).
let numbers = [5, 6, 2, 3, 7]; let max = Math.max.apply(null, numbers); document.write(max);Проверим, посмотрим‹/›
Метод call() принимает параметры отдельно.
Метод apply() принимает параметры в видеМассив.
Если нужно использовать массив вместо списка параметров, то метод apply() очень удобен.
Умное использование, apply() позволяет использовать内置函数 для выполнения某些 задач, в противном случае их можно было бы записать, итерируя значения массива.
В качестве примера мы используем Math.max/ Math.min для нахождения максимального/минимального значения в массиве.
let numbers = [5, 6, 2, 3, 7]; let max = Math.max.apply(null, numbers); let min = Math.min.apply(null, numbers); for(let i = 0; i < numbers.length; i++) { if(numbers[i] > max) { max = numbers[i]; } if(numbers[i] < min) { min = numbers[i]; } } document.write(min, "<br>", max);Проверим, посмотрим‹/›
В следующем примере мы вызвали функцию display без передачи параметров:
var name = "Seagull"; function display() { document.write(this.name); } display.apply();Проверим, посмотрим‹/›