«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Освоение ключевого слова &#this&# в JavaScript

Освоение ключевого слова &#this&# в JavaScript

Опубликовано 6 ноября 2024 г.
Просматривать:746

Mastering the

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

В этой статье мы увидим, что это такое, как оно работает в различных ситуациях и какие распространенные ошибки не следует допускать при его использовании.

Понимание этого в JavaScript

это просто относится к объекту, который в данный момент используется в коде JavaScript. Но вот в чем сложность: то, что это означает, также может меняться в зависимости от того, где и как вы используете это в своем коде. можно спросить: «Почему?» Ну, это динамическое по своей природе =, то есть его значение определяется при вызове функции, а не при ее написании.

это в глобальном и функциональном контекстах

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

А при использовании внутри функции он ведет себя совершенно по-другому. Например: если вы вызываете, например, функцию «myFunction», это все равно будет указывать на глобальный объект, но если вы используете строгий режим в Javascript, он сделает его неопределенным внутри этой функции.

Да, я знаю, это довольно запутанно, просто продолжайте. Я объясню лучше.

это в объектах

Когда вы используете this внутри метода (функции, которая является свойством объекта), this относится к объекту, которому принадлежит метод.

Пример:

const myObject = {
    name: 'Alice',
    greet: function() {
        console.log(this.name);
    }
};

myObject.greet(); // Output: 'Alice'

Здесь this.name относится к myObject.name, то есть «Алиса».

это в конструкторах и классах

Конструкторы: когда вы создаете объект с помощью функции-конструктора или класса, это относится к создаваемому новому объекту.

Пример:

function Person(name) {
    this.name = name;
}

const person1 = new Person('Bob');
console.log(person1.name); // Output: 'Bob'

В коде this.name ссылается на свойство name нового объекта Person.

Распространенные ошибки и как их избежать

Одна из распространенных ошибок — потеря правильного значения в обратных вызовах или обработчиках событий. Например, если вы передаете метод из объекта в качестве обратного вызова, он может больше не ссылаться на объект.

Решение. Чтобы избежать этого, вы можете использовать функцию стрелки или привязку, чтобы она указывала на правильный объект.

const myObject = {
    name: 'Eve',
    greet: function() {
        setTimeout(() => {
            console.log(this.name);
        }, 1000);
    }
};

myObject.greet(); // Output: 'Eve'

Заключение

Это ключевое слово может быть занозой в заднице, но все, что вам нужно принять во внимание, это то, что оно меняется в зависимости от того, как и где вы решите его вызывать. Чтобы стать лучше, используйте его для практики на множестве примеров, и, не тратя времени, вы станете в нем профессионалом.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/stephanie_obiekezie_0d18f/mastering-the-this-keyword-in-javascript-6f5?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3