|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Mar 2010
Адрес: Russian Federation
Сообщений: 59
|
Что дает употребление this в не динамических классах?
Собственно, сабж. Никогда не пользовался в не динамических классах, но часто вижу употребление другими этого ключевого слова везде, где только можно. Это что-то дает? И, если дает, то что? А если не дает, зачем использовать? Спасибо.
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 не увеличивает скорость компиляции? Даже если не увеличивает, то почему лучше не писать?
__________________
Я мало чего умею, но зато хорошо умею учиться... |
|
|||||
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Если в классе (или его наследниках), где везде писалось super.method() method всё-таки кто-то перегрузит, то придется от этого super избавляться.
super пишут либо если method уже перегружен и таки хочется вызвать метод базового класса - собсно для этого super сделан. Либо если
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
-De-, чего - то я немного не догнал, что ты подразумеваешь под
Цитата:
__________________
местонахождение |
|
|||||
Перегрузки в АС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. |
|
|||||
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
override, конечно.
HardCoder, написать, конечно, можно (extends не забыть только), но вот в данном примере super.method(); вызовется дважды. И ещё представьте, что в SomeClass есть куча методов типа func1. И в них захотелось вызывать новый method(); старый уже не тот. Захотел сделать свой дисплей лист с addChild, но везде super.addChild.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
Часовой пояс GMT +4, время: 00:37. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|