Методы функций
Для чего используется метод Function.prototype.apply?
apply — это метод, используемый для вызова функции с заданным
значением this и аргументами, переданными в виде массива.
Основные характеристики:
-
Задание контекста
this:-
Позволяет определить, каким объектом будет
thisвнутри вызываемой функции. -
Пример:
function greet() { console.log(this.name); } const obj = { name: "Alice" }; greet.apply(obj); // "Alice"
-
-
Передача аргументов в виде массива:
-
Позволяет передать аргументы функции в виде массива или массиваоподобного объекта.
-
Пример:
function sum(a, b) { return a + b; } const args = [2, 3]; console.log(sum.apply(null, args)); // 5
-
Метод apply используется для вызова функции с заданным значением this и аргументами, переданными в виде массива, что обеспечивает гибкость в управлении контекстом и передачей параметров.
Для чего используется метод Function.prototype.call?
call — это метод, используемый для вызова функции с заданным
значением this и аргументами, переданными по отдельности.
Основные характеристики:
-
Задание контекста
this:-
Позволяет определить, каким объектом будет
thisвнутри вызываемой функции. -
Пример:
function greet() { console.log(this.name); } const obj = { name: "Alice" }; greet.call(obj); // "Alice"
-
-
Передача аргументов по отдельности:
-
Позволяет передать аргументы функции через запятую.
-
Пример:
function sum(a, b) { return a + b; } console.log(sum.call(null, 2, 3)); // 5
-
Метод call используется для вызова функции с заданным значением this и аргументами, переданными по отдельности, обеспечивая гибкость в управлении контекстом и передачей параметров.
В чем разница между методами call и apply?
Разница между методами call и apply:
-
Передача аргументов:
-
call: Аргументы передаются по отдельности.function sum(a, b) { return a + b; } console.log(sum.call(null, 2, 3)); // 5 -
apply: Аргументы передаются в виде массива.function sum(a, b) { return a + b; } console.log(sum.apply(null, [2, 3])); // 5
-
-
Синтаксис:
-
call:func.call(thisArg, arg1, arg2, ...) -
apply: func.apply(thisArg, argsArray)
-
Для чего используется метод Function.prototype.bind?
bind — это метод, который создаёт новую функцию с установленным
значением this и, возможно, с частично переданными аргументами.
Основные характеристики:
-
Задание контекста
this:-
Позволяет задать контекст
this, который будет использоваться при вызове новой функции. -
Пример:
function greet() { console.log(this.name); } const obj = { name: "Alice" }; const boundGreet = greet.bind(obj); boundGreet(); // "Alice"
-
-
Частичное применение аргументов:
-
Можно передать часть аргументов функции, которые будут зафиксированы при создании новой функции.
-
Пример:
function sum(a, b) { return a + b; } const addFive = sum.bind(null, 5); console.log(addFive(3)); // 8
-
Метод bind используется для создания новой функции с фиксированным значением this и/или частично переданными аргументами, обеспечивая гибкость в управлении контекстом и аргументами функции.