JavaScript - ключевое слово this

This ключевое слово является одним из самых запутанных и непонятных частей JavaScript. Ключевое слово this this ведет себя по-разному в JavaScript по сравнению с другим языком. В объектно-ориентированных языках ключевое слово «this» относится к текущему экземпляру класса. В JavaScript значение этого определяется главным образом контекстом вызова функции и где он вызывается. В большинстве случаев значение этого определяется тем, как вызывается функция. Он не может быть задан при назначении во время выполнения, и при каждом вызове функции он может быть различным.
Глобальный масштаб
Когда вы используете ключевое слово «this» в глобальном контексте, оно привязано к глобальному объекту (окно в браузере).
Синтаксис:
document.write(this); //[object Window]
Когда вы используете это внутри функции, определенной в глобальном контексте , это все еще связано с глобальным объектом, поскольку функция фактически является методом глобального контекста.
Пример:
function foo(){
return this;
}
document.write(foo()); //[object Window]
Выше foo делается методом глобального объекта.
Вызов функции
Ключевое слово this это глобальный объект, если вы вызываете функцию.
Пример:
window.meGlobal = "I'm the window object";
function foo() {
alert(this.meGlobal); // I'm the window object
alert(window === this); // true
}
foo();
Функция внутреннего конструктора
Когда функция используется как конструктор (то есть, когда она вызывается с новым ключевым словом), это внутреннее тело функции указывает на новый объект, который строится.
Пример:
var globalVar = "I am Global";
function callMe()
{
this.globalVar = "inside function";
}
var obj1 = new callMe(); //adds globalVar to obj1
document.write(obj1.globalVar); //call me
Вопросы / Комментарии / Отзывы