Webzone Публикации Javascipt JavaScript - ключевое слово this

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

12 Август 2019
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



Вопросы / Комментарии / Отзывы