0Pricing
JavaScript Academy · Урок

Основы this; call/apply/bind (введение)

Разберитесь, на что ссылается this в функциях и методах; изучите this в стрелочных функциях и познакомьтесь с call/apply/bind.

«Основы this; call/apply/bind (введение)» — бесплатный урок JavaScript Academy на CoddyKit. Это урок 3 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения JavaScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс JavaScript Academy содержит 3 уроков всего.

Введение в this

Цель: понять, на что ссылается this в разных вызовах, изучить стрелочный this и постепенно попробовать call/apply/bind.

  • Вызов метода и обычный вызов
  • Стрелочный this
  • call/apply/bind
Основы this; call/apply/bind (введение) — иллюстрация 1

this при вызове метода

При вызове метода this указывает на объект перед точкой.

// Method call: this is the object before the dot
const user = {
  name: "Ayla",
  say() {
    console.log("I am", this.name);
  }
};

user.say();
Основы this; call/apply/bind (введение) — иллюстрация 2

this при обычном вызове

При обычном вызове в строгом режиме this имеет значение undefined. В браузерах без строгого режима это может быть объект window.

// Plain function call: this is undefined in strict mode
function show() {
  console.log("this is", this);
}

show();
Основы this; call/apply/bind (введение) — иллюстрация 3

Стрелочный this (лексическое связывание)

Стрелочная функция использует внешний this (лексически связанный). Это особенно удобно для обратных вызовов внутри методов.

// Arrow functions do not have their own this
// They capture this from the surrounding scope
const team = {
  title: "Blue",
  start() {
    const report = () => {
      console.log("Team:", this.title);
    };
    report();
  }
};

team.start();
Основы this; call/apply/bind (введение) — иллюстрация 4

call и apply

call и apply немедленно запускают функцию с указанным значением this.

// call/apply invoke the function with a chosen this
function intro(lang1, lang2) {
  console.log("User:", this.name, "knows", lang1, "and", lang2);
}

const person = { name: "Mina" };

// call passes arguments normally
intro.call(person, "JS", "TS");

// apply passes arguments as an array
intro.apply(person, ["JS", "TS"]);
Основы this; call/apply/bind (введение) — иллюстрация 5

Основы bind

bind возвращает новую функцию, которая запоминает выбранное значение this для будущих вызовов.

// bind creates a new function with this fixed
function sayHi() {
  console.log("Hi from", this.name);
}

const dev = { name: "Lena" };

const sayHiFromLena = sayHi.bind(dev);

sayHiFromLena();
sayHiFromLena();
Основы this; call/apply/bind (введение) — иллюстрация 6

Проверка bind и call/apply

Быстрая проверка: фиксация this.

Основы this; call/apply/bind (введение) — иллюстрация 7

Повторение

Повторение: при вызове метода this получает значение объекта, при обычном вызове в строгом режиме this равен undefined, стрелочные функции захватывают внешний this, call/apply задают его для одного вызова, а bind фиксирует его для последующих вызовов.

Основы this; call/apply/bind (введение) — иллюстрация 8

Часто задаваемые вопросы

Урок «Основы this; call/apply/bind (введение)» бесплатный?

Да — полный текст урока «Основы this; call/apply/bind (введение)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс JavaScript Academy, подпишись на CoddyKit PRO. Курс JavaScript Academy содержит 3 уроков всего.

Чему я научусь в уроке «Основы this; call/apply/bind (введение)»?

Разберитесь, на что ссылается this в функциях и методах; изучите this в стрелочных функциях и познакомьтесь с call/apply/bind. Ты практикуешь JavaScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать JavaScript Academy?

Предыдущий опыт не требуется. JavaScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 3.

Сколько времени занимает урок «Основы this; call/apply/bind (введение)»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке JavaScript Academy?

Да. Каждый урок JavaScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Объявления и выражения, основы стрелочных функций
  2. Параметры, значения по умолчанию, rest и возврат результатов
  3. Основы this; call/apply/bind (введение)
← Назад к JavaScript Academy