Видео
this является ключевым словом, которое ссылается на текущий контекст выполнения кода. Значение this динамически определяется в зависимости от того, как вызывается функция.
Основные правила определения this:
Явный вызов: Если функция вызывается с помощью call(), apply() или bind(), то this будет устанавливаться в соответствии с первым аргументом этих методов.
Метод объекта: Если функция вызывается как метод объекта, то this будет ссылаться на этот объект.
Стрелочные функции: В стрелочных функциях this наследуется из лексического окружения, в котором определена стрелочная функция.
Глобальный контекст: Если функция вызывается без явного контекста, то this будет ссылаться на глобальный объект (в браузере - window, в Node.js - global).
Как работает call,apply,bind с примерами:
call(): Вызывает функцию, передавая в нее значение this и аргументы по отдельности.
function greet(message) {
console.log(`${message}, my name is ${this.name}`);
}
const person = { name: "John" };
greet.call(person, "Hello"); // Output: "Hello, my name is John"
2. apply(): Вызывает функцию, передавая в нее значение this и аргументы в виде массива.
```javascript
function sum(a, b) {
return a + b;
}
const numbers = [5, 10];
const result = sum.apply(null, numbers); // result === 15
bind(): Возвращает новую функцию, в которой this привязан к указанному значению.
function greet(message) {
console.log(`${message}, my name is ${this.name}`);
}
const person = { name: "John" };
const greetPerson = greet.bind(person, "Hello");
greetPerson(); // Output: "Hello, my name is John"
Видео this является ключевым словом, которое ссылается на текущий контекст выполнения кода. Значение this динамически определяется в зависимости от того, как вызывается функция.
Основные правила определения this:
Как работает call,apply,bind с примерами:
const person = { name: "John" }; greet.call(person, "Hello"); // Output: "Hello, my name is John"