Přejít na hlavní obsah

Jak funguje Klíčové slovo this: kompletní průvodce

Klíčové slovo this - jeden z nejdůležitějších prvků v programovacím jazyce JavaScript. Pochopení toho, jak funguje, je zásadní pro efektivní používání jazyka. Klíčové slovo this používá se k odkazování na aktuální objekt nebo kontext, ve kterém je aktuální funkce spuštěna.

Klíčové slovo this může mít různé významy v závislosti na kontextu výkonu. Může odkazovat na globální objekt window v prohlížečovém prostředí nebo na objekt, ke kterému metoda patří. A také významy this mohou být jasně nastaveny při volání funkce pomocí metod call() a apply().

Správné použití klíčového slova this pomáhá předcházet zmatkům a chybám při vývoji kódu JavaScript. V této příručce se podíváme na hlavní případy použití klíčového slova this a vysvětlíme, jak to funguje v různých situacích. Podíváme se také na jeho rozdíly od proměnných kontextu a ukážeme, jak používat this v přísném režimu.

Definice klíčového slova this

Hodnota this určuje se během provádění kódu a závisí na kontextu volání funkce nebo metody. Kontext hovoru je definován způsobem volání funkce a může být odlišný.

Když je funkce vyvolána jako metoda objektu, this odkazuje na tento objekt. Například:

const person = >;
V tomto příkladu this označuje objekt person. Používat this.name, získáváme přístup k vlastnostem name objektu person.


Když je funkce volána v normálním režimu nebo funkci šipky, hodnota this závisí na kontextu hovoru a může naznačovat globální objekt window (v prohlížeči) nebo global (v Node.js), pokud není zadán kontext hovoru.


Klíčové slovo this hraje důležitou roli v objektově orientovaném programování a umožňuje spravovat kontext provádění kódu. Správné použití this pomáhá vytvářet flexibilnější a škálovatelnější kód.




Kontext exekuce


Ключевое слово this в JavaScript ссылается на объект, в контексте которого выполняется текущая функция.
Контекст исполнения, также называемый контекстом вызова функции, определяет значение this внутри функции.
Значение this может быть установлено явно при вызове функции, а также зависит от способа вызова функции.
В глобальной области видимости, за пределами функций, значение this ссылается на объект window – глобальный объект браузера.
В методах объекта, значение this ссылается на сам объект, в контексте которого вызывается метод.
Анонимные функции, вызванные как обработчики событий или обратные вызовы, имеют значение this, которое определяется механизмом вызова функции.
Ключевое слово this играет ключевую роль при доступе к свойствам и методам объектов, а также при работе с прототипами и наследованием.
Важно понимать контекст исполнения, чтобы правильно использовать ключевое слово this и избегать ошибок в коде.

Jak to souvisí s kontextem exekuce


Когда функция вызывается как метод объекта, значение this ссылается на этот объект. Например, если у нас есть объект person и метод sayHello:
let person = >;person.sayHello(); // Привет, меня зовут John

В этом случае, при вызове метода sayHello у объекта person, значение this ссылается на сам объект person, и мы можем получить доступ к его свойствам и методам.
Однако, если функция вызывается без контекста объекта, значение this будет ссылаться на глобальный объект (в браузере это объект window, в Node.js – объект global). Например:
function sayHello() let name = "John";sayHello(); // Привет, меня зовут John

В этом случае, функция sayHello вызывается без объекта, поэтому значение this ссылается на глобальный объект, и мы можем получить доступ к глобальной переменной name.
Кроме того, значение this может быть изменено с помощью методов call и apply. Эти методы позволяют явно указать, какой объект будет использоваться в качестве значения this. Например:
let person1 = ;let person2 = ;function sayHello() sayHello.call(person1); // Привет, меня зовут JohnsayHello.call(person2); // Привет, меня зовут Jane

В этом примере, мы используем метод call для вызова функции sayHello с объектом person1 в качестве значения this. В результате, значение this ссылается на объект person1, и мы можем получить доступ к его свойству name.
Понимание того, как значение this связано с контекстом исполнения, является важным аспектом разработки на JavaScript и помогает избежать ошибок и неожиданного поведения кода.

Různé způsoby určení kontextu výkonu


Ключевое слово this в JavaScript позволяет определить контекст исполнения, то есть объект, на котором вызывается функция. В зависимости от того, как вызывается функция, значение this может быть разным. Рассмотрим несколько способов определения контекста исполнения.

1. V globální viditelnosti


Если функция вызывается в глобальной области видимости, то значение this будет ссылаться на глобальный объект, например, window в браузере или global в Node.js.

2. Uvnitř funkce


Когда функция вызывается как метод объекта, значение this будет ссылаться на сам объект, на котором вызывается функция. Например:
const obj = !`);>>;obj.sayHello(); // Output: Hello, John!

3. Uvnitř konstruktéra


При использовании функции-конструктора с помощью ключевого слова new, значение this будет ссылаться на новый экземпляр объекта, созданный с помощью конструктора. Например:
function Person(name) const john = new Person('John');console.log(john.name); // Output: John

4. Pomocí metod call a apply


Методы call и apply позволяют явным образом указать значение this при вызове функции. Метод call принимает аргументы в виде отдельных значений, а метод apply принимает аргументы в виде массива. Например:
function sayHello() !`);>const obj = ;sayHello.call(obj); // Output: Hello, John!

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

Příklady použití


Ключевое слово this часто используется в объектно-ориентированном программировании для обращения к текущему объекту внутри его методов. Рассмотрим несколько примеров его использования:
  1. Použití this pro přístup k vlastnostem objektu:
const person = , Age: $`;>>;console.log(person.getDetails()); // Output: "Name: John, Age: 30"
const calculator = ,subtract(num) ,multiply(num) ,getResult() >;const result = calculator.add(5).multiply(2).subtract(3).getResult();console.log(result); // Output: 7
function Person(name, age) Person.prototype.getDetails = function() , Age: $`;>;const john = new Person('John', 30);console.log(john.getDetails()); // Output: "Name: John, Age: 30"

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

Příklady použití this v objektech


Ключевое слово this в JavaScript используется для ссылки на текущий объект, в котором был вызван метод или происходит выполнение кода. Ниже приведены примеры, в которых this используется для доступа к свойствам и методам объекта.
  • Příklad 1:
var person = >;var info = person.getInfo();console.log(info); // Output: "My name is John and I am 25 years old."
var calculator = ,difference: function() >;console.log(calculator.sum()); // Output: 15console.log(calculator.difference()); // Output: 5
function Car(make, model) ;>var myCar = new Car("Toyota", "Camry");console.log(myCar.getFullInfo()); // Output: "Make: Toyota, Model: Camry"

Использование ключевого слова this помогает избежать конфликтов между различными объектами и обеспечить правильную работу методов и свойств в контексте объекта, в котором они были определены.

Příklady použití this ve funkcích


Ключевое слово this в JavaScript используется внутри функций и ссылается на объект, который вызывает данную функцию. Рассмотрим несколько примеров, чтобы ознакомиться с различными ситуациями использования this.
1. Пример использования this в методе объекта:
const obj = >;

2. Пример использования this в конструкторе объекта:
function Person(name, age) Person.prototype.sayHello = function() ;const john = new Person('John', 30);

3. Пример использования this в функции обратного вызова:
const btn = document.querySelector('button');btn.addEventListener('click', function() );

В данном случае, при клике на кнопку, функция обратного вызова будет вызываться с контекстом this, указывающим на саму кнопку.
4. Пример использования this в стрелочной функции:
const obj = , 1000);>>;

Стрелочные функции не имеют своего контекста this, поэтому внутри них this ссылается на контекст родительской функции. В данном примере, this внутри setTimeout ссылается на объект obj.
Использование ключевого слова this в JavaScript является важной частью понимания работы объектов и функций. Разбирая различные примеры и контексты, вы сможете лучше усвоить его поведение и использовать его в своих проектах.