![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Mar 2010
Адрес: Russian Federation
Сообщений: 59
|
Собственно, сабж. Никогда не пользовался в не динамических классах, но часто вижу употребление другими этого ключевого слова везде, где только можно. Это что-то дает? И, если дает, то что? А если не дает, зачем использовать? Спасибо.
UPD. Наверное это мега-нубский вопрос, но я в упор не понимаю, зачем использовать this. Объясните мне, люди! Последний раз редактировалось gait; 28.02.2012 в 22:34. |
|
|||||
|
Цитата:
Являюсь сторонником this. Намного удобнее читать код (лично мне) - сразу определяешь где свойство/метод класса или суперкласса, а где локальная переменная.
__________________
Я мало чего умею, но зато хорошо умею учиться... |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Загуглите, что такое this.
Из этого всё растёт. Из других неочевидных - чтобы различать переменные класса и локальные. private var a:int; function fun(a:int):void {//если вам лень придумывать уникальные имена или религия не позволяет, например this.a = a; } PS: this хоть безопасен, а вот super лучше не писать, это какое-то легкое помешательство чисто местных флешеров.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
|
Не являюсь сторонником super (хотя, иногда без него нельзя обойтись). Но все же. Разве super не увеличивает скорость компиляции? Даже если не увеличивает, то почему лучше не писать?
__________________
Я мало чего умею, но зато хорошо умею учиться... |
|
|||||
|
Регистрация: Mar 2010
Адрес: Russian Federation
Сообщений: 59
|
Я не гуглил, просто открыл справку, а там написано только это: "Ссылка на объект, содержащий метод. При выполнении сценария ключевое слово this ссылается на объект, содержащий сценарий. В теле метода ключевое слово this ссылается на экземпляр класса, который содержит вызываемый метод." И всё, больше никаких подробностей
![]() Цитата:
Всё-таки мне не очень ясно, когда вы пишете this ![]() Цитата:
котором был определен метод прослушивателя. Иными словами, если вы пользовались этим методом в ActionScript 2.0, ключевое слово this будет относиться к компоненту, осуществляющему широковещательную рассылку события, а не к экземпляру ChildSprite." Но справедливости ради надо отметить, что this еще именуется в документации как ссылка (на той же 109 странице, например), поэтому, я не могу быть увереным в своём понимании. Последний раз редактировалось gait; 29.02.2012 в 04:04. |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Цитата:
UPD: вроде так и не поняли, что же это такое. this - это экземпляр класса, в методе которого этот this написан. Статики живут глобально и отдельно от экземпляров класса (чтоб их вызывать не нужно создавать экземпляр класса, например), нет экземпляра - нет this. Переменные типа класса - все ссылки, потому this - это тоже ссылка (т.е. при присвоении а = б, если а и б - классы, то копирование класса б не происходит, а а и б ссылаются на один обьект и если менять а, то будет меняться и б). Если что - поищите примеры использования %) И учите, блин, язык, а то чую написал китайскую грамоту =\
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. Последний раз редактировалось -De-; 29.02.2012 в 04:43. |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Если в классе (или его наследниках), где везде писалось super.method() method всё-таки кто-то перегрузит, то придется от этого super избавляться.
super пишут либо если method уже перегружен и таки хочется вызвать метод базового класса - собсно для этого super сделан. Либо если
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
|
Перегрузки в АС3 нет, поэтому логично предположить, что имеется в виду переопределение. -De-, можешь обьяснить, что это значит:
Цитата:
public class SomeClass { public function func1():void { doSomeAnother(); //здесь вызываю метод суперкласса: super.method(); //что в строчке выше кривого, и почему это делать опасно? //и где намек на то, что я говорю: "не переопределяй method!!!" } override public function method():void { doSomething(); super.method(); } }
__________________
Я мало чего умею, но зато хорошо умею учиться... Последний раз редактировалось HardCoder; 29.02.2012 в 00:47. |
|
|||||
|
-De-, чего - то я немного не догнал, что ты подразумеваешь под
Цитата:
__________________
местонахождение |
![]() |
![]() |
Часовой пояс GMT +4, время: 05:41. |
|
|
« Предыдущая тема | Следующая тема » |
|
|