Задать вопрос
Ingernirated
@Ingernirated
Романыч

Зачем в данном примере this, если с именем обьекта тоже работает?

Какая разница, писать название обьекта или this?
И где реальное применение this, где без this вообще никак?
var arr = {
	"name" : "Stive",
	"age" : 29,
	"all" : function() {
		return arr.name + " " + arr.age;
	}
};

var arr = {
	"name" : "Stive",
	"age" : 29,
	"all" : function() {
		return this.name + " " + this.age;
	}
};
  • Вопрос задан
  • 198 просмотров
Подписаться 1 Оценить Комментировать
Решение пользователя Сергей Соколов К ответам на вопрос (3)
sergiks
@sergiks Куратор тега JavaScript
♬♬
В вашем примере разницы нет и this удобнее только тем, что при переименовании "arr" не придётся ещё две замены делать.

Хотя, если дальше вы используете наследование, то разница принципиальна. Например, создать новый объект, используя arr как прототип:
var arr = {
  "name" : "Stive",
  "age" : 29,
  "all" : function() { return this.name + " " + this.age; }
};
var b = Object.create(arr);
b.name = "Bill";
b.age = 39;
b.all();

С this в arr код для b выполнится нормально и вернёт "Bill 39", а если в arr вместо this было прямое указание на arr, то вернёт "Stive 29".
Ответ написан
Комментировать