JavaScript это ключевое слово
Пример
var person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
Что такое " это"?
В определении функции это относится к "владельцу" функции.
В приведенном выше примере это относится к объекту Person .
Объект Person "владеет" методом.
Привязка по умолчанию
При использовании в одиночку это относится к глобальному объекту.
В браузере глобальный объект является [окномобъекта]:
Пример
var x = this;
При использовании в функции это относится к глобальному объекту.
Пример
function myFunction() {
return this;
}
В строгом режиме, это будет неопределенным, Поскольку строгий режим не разрешает привязку по умолчанию:
Пример
"use strict";
function myFunction() {
return this;
}
Привязка метода объекта
В этих примерах это объект Person (объект Person является "владельцем" функции):
Пример
var person = {
firstName : "John",
lastName : "Doe",
id : 5566,
myFunction : function() {
return this;
}
};
Пример
var person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " +
this.lastName;
}
};
Иными словами: this. имя означает свойство " имя " этого (Person) объекта.
Явная привязка функции
Методы Call () и Apply () являются предопределенными методами JavaScript.
Они оба могут использоваться для вызова метода объекта с другим объектом в качестве аргумента.
Подробнее о Call () и Apply () можно прочитать далее в этом учебнике.
В этом примере при вызове person1. с персон2 как аргумент, это будет ссылаться на персон2, даже если это метод person1:
Пример
var person1 = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
var person2 = {
firstName:"John",
lastName: "Doe",
}
person1.fullName.call(person2); // Will return "John Doe"