This в JavaScript

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

 

 

Источник: net-informations.com/js/iq/this.htm

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector