Тема: this это
Показать сообщение отдельно
Старый 03.12.2013, 12:09
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 7  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
this это явное указание на себя. Зачем нужно:
1. Представьте что у вас объект со свойствами x и y есть, а вы хотите добавить к нему метод setCoords для того чтобы ставить обе координаты сразу.
т.е. свойства у вас такие
Код AS3:
public var x:int;
public var y:int;
 
//и наш метод на оба сразу
public function setCoords(x:int, y:int):void {
	this.x = x;
	this.y = y;
}
В данном примере внутри функции есть по сути два x, это тот который параметр и тот который ваше свойство. Параметр функции обладает более высоким приоритетом, поэтому под именем x будет тот который параметр. И тут мы говорим компилятору, присвой это значение вон туда, в x который в объекте у нас. Как ему это сказать? Вот и говорим this.x = x.

Вариант два это когда нужно передать объект себя куда нибудь, не приведу сейчас простенького примера.

В итоге this это не какая то такая сложная штука и не так уж и часто применяемая. Он ещё нужен самому интерпретатору чтобы понимать для какого объекта вызван метод.

Код AS3:
public var x:int;
public var y:int;
 
public function traceCoords():void {
	trace(x,y);
}
Вот в данном примере trace(x,y); по сути автоматически заменится на
Код AS3:
trace(this.x,this.y);
Т.е. компилятор сам понимает что вы имели ввиду, вот и получается что явно указывать надо когда ему не понятно(см первый пример). Вот как-то так. Это не все применения this но они уже выходят за рамки вопроса и ответа. Также советую почитать где нибудь что такое super.
__________________
:)