RasKerGG / SocialNetwork

GNU General Public License v3.0
1 stars 0 forks source link

Урок 2. Что такое контекст this. Как работает call, bind, apply #49

Closed Fenz1t closed 6 hours ago

Fenz1t commented 6 hours ago

Видео this является ключевым словом, которое ссылается на текущий контекст выполнения кода. Значение this динамически определяется в зависимости от того, как вызывается функция.

Основные правила определения this:

  1. Явный вызов: Если функция вызывается с помощью call(), apply() или bind(), то this будет устанавливаться в соответствии с первым аргументом этих методов.
  2. Метод объекта: Если функция вызывается как метод объекта, то this будет ссылаться на этот объект.
  3. Стрелочные функции: В стрелочных функциях this наследуется из лексического окружения, в котором определена стрелочная функция.
  4. Глобальный контекст: Если функция вызывается без явного контекста, то this будет ссылаться на глобальный объект (в браузере - window, в Node.js - global).

Как работает call,apply,bind с примерами:

  1. 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
  1. 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"