Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 28.02.2012, 22:20
gait вне форума Посмотреть профиль Отправить личное сообщение для gait Найти все сообщения от gait
  № 1  
gait

Регистрация: Mar 2010
Адрес: Russian Federation
Сообщений: 59
По умолчанию Что дает употребление this в не динамических классах?

Собственно, сабж. Никогда не пользовался в не динамических классах, но часто вижу употребление другими этого ключевого слова везде, где только можно. Это что-то дает? И, если дает, то что? А если не дает, зачем использовать? Спасибо.
UPD. Наверное это мега-нубский вопрос, но я в упор не понимаю, зачем использовать this. Объясните мне, люди!


Последний раз редактировалось gait; 28.02.2012 в 22:34.
Старый 28.02.2012, 23:11
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 2  
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Цитата:
Сообщение от gait Посмотреть сообщение
Что дает употребление this в не динамических классах? ... Никогда не пользовался в не динамических классах ...
А что оно дает в динамических классах?
Являюсь сторонником this. Намного удобнее читать код (лично мне) - сразу определяешь где свойство/метод класса или суперкласса, а где локальная переменная.
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 28.02.2012, 23:24
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 3  
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Загуглите, что такое this.
Из этого всё растёт.
Из других неочевидных - чтобы различать переменные класса и локальные.
Код AS3:
private var a:int;
function fun(a:int):void {//если вам лень придумывать уникальные имена или религия не позволяет, например
this.a = a;
}
Когда лепят всюду, это такая прямая замена m_ венгерской нотации, означает, что переменная - член класса.
PS: this хоть безопасен, а вот super лучше не писать, это какое-то легкое помешательство чисто местных флешеров.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 28.02.2012, 23:35
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 4  
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Цитата:
Сообщение от -De- Посмотреть сообщение
PS: this хоть безопасен, а вот super лучше не писать, это какое-то легкое помешательство чисто местных флешеров.
Не являюсь сторонником super (хотя, иногда без него нельзя обойтись). Но все же. Разве super не увеличивает скорость компиляции? Даже если не увеличивает, то почему лучше не писать?
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 28.02.2012, 23:49
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 5  
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Пишу только то что нужно и когда нужно (this, super). Никакого дискомфорта от этого не испытываю.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 29.02.2012, 00:09
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 6  
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Если в классе (или его наследниках), где везде писалось super.method() method всё-таки кто-то перегрузит, то придется от этого super избавляться.
super пишут либо если method уже перегружен и таки хочется вызвать метод базового класса - собсно для этого super сделан. Либо если класс криво написан и потому опасно этот method перегружать автор хочет сказать "не перегружайте method ни за что, не вашего ума дело".
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 29.02.2012, 00:31
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 7  
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
-De-, чего - то я немного не догнал, что ты подразумеваешь под
Цитата:
перегрузит
? или ты про переопределение?
__________________
местонахождение

Старый 29.02.2012, 00:43
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 8  
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Перегрузки в АС3 нет, поэтому логично предположить, что имеется в виду переопределение. -De-, можешь обьяснить, что это значит:
Цитата:
Сообщение от -De- Посмотреть сообщение
Либо если класс криво написан и потому опасно этот method перегружать автор хочет сказать "не перегружайте method ни за что, не вашего ума дело".
Почему опасно? Выходит, я не могу написать:
Код AS3:
public class SomeClass {
      public function func1():void {
            doSomeAnother();
            //здесь вызываю метод суперкласса:
            super.method();
            //что в строчке выше кривого, и почему это делать опасно?
            //и где намек на то, что я говорю: "не переопределяй method!!!"
      }
 
      override public function method():void {
            doSomething();
            super.method();
      }
}
Код AS3:
var a:SomeClass = new SomeClass();
//делаю что-то и вызываю метод суперкласса
a.func1();
//вызываю переопределенный метод
a.method();
__________________
Я мало чего умею, но зато хорошо умею учиться...


Последний раз редактировалось HardCoder; 29.02.2012 в 00:47.
Старый 29.02.2012, 00:58
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 9  
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
override, конечно.
HardCoder, написать, конечно, можно (extends не забыть только), но вот в данном примере super.method(); вызовется дважды. И ещё представьте, что в SomeClass есть куча методов типа func1. И в них захотелось вызывать новый method(); старый уже не тот.
Захотел сделать свой дисплей лист с addChild, но везде super.addChild.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 29.02.2012, 01:11
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 10  
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
Когда изучал АС3, то пользовался флешовой идехой и, конечно, код писал в кадрах. Там this я лепил где только можно было - это помогало получать контекстно зависимый автокомплит

Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 00:37.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:37.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.