Основы 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 при вызове метода
При вызове метода this указывает на объект перед точкой.
// Method call: this is the object before the dot
const user = {
name: "Ayla",
say() {
console.log("I am", this.name);
}
};
user.say();

this при обычном вызове
При обычном вызове в строгом режиме this имеет значение undefined. В браузерах без строгого режима это может быть объект window.
// Plain function call: this is undefined in strict mode
function show() {
console.log("this is", this);
}
show();

Стрелочный 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();

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"]);

Основы 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();

Проверка bind и call/apply
Быстрая проверка: фиксация this.

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

Часто задаваемые вопросы
Урок «Основы 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 — локальная установка не требуется.
Все уроки этого курса
- Объявления и выражения, основы стрелочных функций
- Параметры, значения по умолчанию, rest и возврат результатов
- Основы this; call/apply/bind (введение)