![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Banned
[+1 08.05.08]
[+4 14.04.08] [+1.3 02.05.08] Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
|
а если в АС2?
я кстати еще this юзаю в Delegate.create(this, func); Последний раз редактировалось Mr. Fixit; 22.09.2007 в 04:54. |
|
|||||
|
Естестественно, this надо использовать там, где без него не обойтись (например, если параметер метода совпадает с именм поля, или вы передаете его в качестве аргумента), но в остальных местах он просто лишний. Это у некоторых привычка от старых protоtype based версий ActionScript. Не спроста ведь в новых версиях сделали возможным его опускать? Вообще существует несколько основных разновидностей именования приватных полей класса.
Без подчеркивания: myField Этот вариант имеет две проблемы: имя поля может быть перекрыто локальной переменной или параметром, нельзя определить геттер и сеттер с тем же именем. Последнее особенно актуально, с учетом того, что методы в ActonScript однозначно прнято именовать со строчной буквы. Можно, конечно не использовать геттеры сеттеры по мере возможности, но мы же взрослые дяди, и понимаем, что в коде на несколько десятков тысяч строк оставлять публично трочащие наружу поля чревато тяжелыми телесными повреждениями. С подчеркиванием: _myField Способ всем хорош за исключением эстетического плана. Лишнее подчеркивание анноит. C++ стиль: m_myField Анологичен предыдущему только еще непригляднее - здесь уже два лишних символа. Используется исключительно old school программистами, и теми, кто пытается им подражать, ибо никаких преимуществ по сравнению с вариантом с подчеркиванием у него нет. Pascal стиль: fmyField К счастью, ActionScript регистрочуствительный язык в отличие от Паскаля, поэтому здесь так извращаться не приходится. this спереди: this.myField С этим вариантом есть проблемы того плана, что если вы захотите вынести метод класса, например, в функцию или сделать метод статическим, то придется удалять все this. Если при этом внутри метода будут объявлены переменные с тем же именем, что и имя поля, то придется переименовывать поля. Кроме того, за пределами AsctionScript этот способ крайне редок. С большой буквы: MyField За такое надо убивать из рогатки. Очевидно, что единствеенный кошерный варинат, который позволяеет везде и без исключений применять единоообразную технику именования полей - вариант с пдчеркиванием. В C# можно было бы избрать первый вариант, ибо в .NET принято именовать методы с прописной буквы, в Java так же, потому что там пока еще нет свойств вообще. А вот в Pascal или Basic нельзя - реистронечуствительные языки. В ActionScript первому способу мешает наличие геттеров сеттеров. Как говориться, мементо портабилити. Последний раз редактировалось Entropy; 22.09.2007 в 09:48. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Да ладно, this убрать при переносе в static вообще не проблема, не надо делать из мухи слона. К тому же, в 99% случаев одной заменой this не обойдется, это будет едва ли не самая простая операция. Код и так и так править.
|
|
|||||
|
Регистрация: Sep 2006
Сообщений: 256
|
Цитата:
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
this сразу дает понять и мне и компилятору, что обращение идет не к статическому полю и не к локальной переменной.
Правда, в нескольких проектах в блоге this отсутствует, каюсь |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 134
|
AS2 и его хелп все время приучал нас писать вещи типа mcBall вместо ball, arrBalls вместо Balls и так далее, чтобы не забыть что есть что. С this таже песня, потому как иногда без этого злосчастного this проект просто не хотел компилироваться (мелкие проги не в счет).
Всем новичкам очень рекомендую писать this, чтобы понимать логику и увеличивать читабельность и понимание своего кода. |
|
|||||
|
Ветеран форума
Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
|
В статик методах лучше всего писать так: НазваниеКласса.имяСвойства.
Приватные свойства начинать с двойного подчёркивания: __свойство. На тему названия методов с прописной буквы в АС, чесно говоря в первый раз слышу чтобы была такая договорёность или правило, геттеры и сеттеры — желательно но не обязаловка. this пишу в основном в классах наследуемых от мувиклипа. Да и объекты в цикле не создаю . Разве что при обращении к мувиклипам или текстовым полям в цикле приходится использовать.Последний раз редактировалось screamge; 22.09.2007 в 16:53. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
__i и не ухудшает
![]() Всего лишь дает понять, что то, к чему мы обратились, лежит где-то в классе (и к этому можно перейти по ctrl), а не объявлено внутри функции 150 строчек назад. |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:28. |
|
|
« Предыдущая тема | Следующая тема » |
|
|