что такое контекст js

Аватар пользователя Aleksey
Aleksey
13 апреля 2023

Контекст в JavaScript может быть не совсем очевидным понятием на старте изучения, но пример поможет лучше понять его суть.

Рассмотрим пример:

const car = {
  brand: 'BMW',
  model: 'X5',
  startEngine: function () {
    console.log(`Запускаем двигатель ${this.brand} ${this.model}`);
  },
};

car.startEngine(); // Запускаем двигатель BMW X5

В данном примере car - это объект, у которого есть свойства brand и model, а также метод startEngine, который выводит в консоль сообщение о запуске двигателя. Обратите внимание на использование ключевого слова this в методе startEngine.

Когда мы вызываем метод startEngine на объекте car, контекст выполнения метода будет указывать на объект car. Это означает, что мы можем использовать ключевое слово this внутри метода, чтобы обращаться к свойствам объекта car.

Если мы попытаемся вызвать метод startEngine в контексте другого объекта, например truck, то мы получим другой результат:

const truck = {
  brand: 'Volvo',
  model: 'FH16',
};

car.startEngine.call(truck); // Запускаем двигатель Volvo FH16

Здесь мы использовали метод call для изменения контекста выполнения метода startEngine. Метод call позволяет вызвать функцию с указанным контекстом, который в данном случае указывается как объект truck. Теперь, когда мы вызываем startEngine в контексте объекта truck, значения свойств brand и model будут заменены на значения объекта truck, и мы получим другой результат.

Это простой пример, который демонстрирует, как работает контекст в JavaScript. Контекст позволяет функциям и методам иметь доступ к свойствам объектов и другим переменным в текущем исполнении кода. Изменение контекста выполнения функции с помощью методов call, apply и bind может быть полезным в различных сценариях программирования, когда нужно использовать функцию в контексте другого объекта.

1 0

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Курсы по программированию в Хекслете

Программирование

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Тест-драйв

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

Верстка

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки

Бесплатные курсы

Бесплатные курсы по тестированию, дата-аналитике, верстке, программированию на Python, Java, PHP и JavaScript.

Базы данных

Фреймворки

Похожие вопросы

1
ответ
1
ответ
1
ответ