![]() |
this это
месяца 3 изучаю as3 но до сих пор не могу понять для чего нужно ключевое слово this.
Ув. форумчане подскажите пожалуйста, что это и с чем его едят. Видео-урок человека, в котором он в основном файле (точке входа) прописывает private var const _this:*; Далее в конструкторе главного файла прописывает _this = this; Так вот, аналогично, в классе, каком либо, где описывается поведение объекта. И далее все изменения производятся через даный _this. Я вынес из всего этого, что this - эта область, в которой находится объект. Но господа, так же в коллине муке, встречал пару-тройку абзацев, где this - уточнение свойства при передачи параметра в конструктор класса. В общем запутался, расскажите поподробнее пожалуйста. Заранее спасибо огромнейшее. |
this - ссылка на самого себя внутри себя. Есть у любого экземпляра любого класса.
Это как "Я" у каждого человека :о) Цитата:
PS А вот у Халка есть геттер обертка на this - Халк. И он через нее все делает. Халк.ломать(), Халк.злой(). Хотя это не читайте, я сам запутался. Халк скорее статический. |
Цитата:
Вот |
Цитата:
"Instead of dozens books" - тоже спорный лозунг с такой подачей материала. |
Цитата:
|
Цитата:
|
this это явное указание на себя. Зачем нужно:
1. Представьте что у вас объект со свойствами x и y есть, а вы хотите добавить к нему метод setCoords для того чтобы ставить обе координаты сразу. т.е. свойства у вас такие Код AS3:
Вариант два это когда нужно передать объект себя куда нибудь, не приведу сейчас простенького примера. В итоге this это не какая то такая сложная штука и не так уж и часто применяемая. Он ещё нужен самому интерпретатору чтобы понимать для какого объекта вызван метод. Код AS3:
Код AS3:
|
Правильно ли я понимаю...
Например, есть класс Spaceship, на базе которого создано 5 экземпляров: spaceship1, spaceship2... spaceship5. И если в коде этого класса компиллятор попадает на строку this.y = 50; то все эти экземпляры будут перемещены на уровень y = 50 пикселов. Но чтобы какой-то конкретный экземпляр поместить например на уровень y = 30, то из самого класса Spaceship посредством this этого сделать нельзя (?). Но легко сделать из класса Main, посредством кода: spaceship3.y = 30. |
Цитата:
Цитата:
Код AS3:
|
Цитата:
Как "экземпляр может выполнить код", если это грубо говоря только ссылка на объект. Экземпляр может выполнить код разве что так: spaceship3.x = 50; ну об этом я и написал. Но эта строка будет находится в коде другого класса, отличного от Spaceship. А чтобы засунуть в класс Spaceship ссылку на spaceship3, то это уже... какие-то рекурсивные извраты, разве нет? : ) Насколько я понимаю, у экземпляра нет своего кода, который бы отличался от кода класса этого экземпляра. Цитата:
|
| Часовой пояс GMT +4, время: 11:43. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.