Я новичок в ActionScript, и я заметил, что многие имена переменных в actionscript начинаются с _, и мне было интересно, что это за значение?Что такое знак видимости в нескольких именах переменных в ActionScript?
ответ
Частные переменные в Actioncript, как правило, имеют _ перед ними. Тогда у вас есть getter/seters без _, чтобы предоставить им доступ общественности.
В ActionScript 2.0 _variable означает, что это свойство было встроено для объекта. Однако я прекратил использование ActionScript до того, как вышло 3.0, поэтому, насколько я знаю, он мог бы измениться на 3.0.
Возможно, вы используете naming convention. С точки зрения языка нет особого значения.
Это правда, что в JavaScript люди использовали _ для обозначения «не трогайте это значение», поскольку контроль уровня доступа в JavaScript довольно сложный ... сделать переменную, действительно недоступную извне, - это боль в а ** ...
в ActionScript 2.0 и 1, нет абсолютно никаких правил ...: D ..., например, в классе MovieClip
, в ActionScript 2.0, у вас есть такие свойства, как _x
и _y
. .. все же самое лучшее focusEnabled
vs _focusrect
, оба логические, одно определение, может ли клип быть сфокусированным, а другой ли он имеет желтый прямоугольник, когда сфокусирован ...
либо это действительно связано с какой-то вещи от вспышки игроков внутренностей, или это просто случайное ... обратите внимание, что _global
, _root
и _accProps
и, кроме того, он появляется только на свойства TextField
, MovieClip
и Button
...
__
(два подчеркивания) обозначает магию в флэш-плеер ... __resolve
вполне магический метод ... и __proto__
волшебное свойство, если вы ... но, это не очень согласованный везде ...
Теперь, когда дело доходит до ActionScript 3.0, весь API не использует никаких подчеркиваний. .. много людей, включая меня, выбрали для обозначения private
, protected
и internal
переменных $
с и _
с ..., но это совершенно произвольно именованием, которые должны сделать код для чтения и предотвращения конфликтов имен ...
Greetz
back2dos
Простой - _ {Ваше имя переменной} означает, что это личное.
В AS3 можно определить методы получения и установки, как
public function get myVar():String
{
return _myVar;
}
это заканчивается быть прозрачным вне класса и показывая, как
myclass.myvar
Таким образом, методы получения и установки в AS3 в основном похожи сбивающих с толку свойствами , Таким образом, вам нужно каким-то образом дифференцировать - так что вы начинаете с «_».
Можно было бы написать
class Hello{
private var x:Number;
public function get x():Number{...}
public function set x(value:Number):void{...}
protected var y:Number;
public function get y():Number{...}
public function set y(value:Number):void{...}
}
Но каждый раз, когда у получить доступ к ним из класса или подкласса вам нужно будет указать, какой у среднего, потому что они имеют такое же имя (которое можно как они находятся в разных пространствах имен). Это будет выглядеть
var before:Number = private::x;
или для использования сорбента:
var before:Number = public::x;
для защищенных варов это было бы даже быть продолжено во всех подклассах ...
Людей, которые не любит подчеркивание можно использовать любой другой синтаксис, чтобы сделать имена уникальными, например первая буква для геттеров и сеттеров, как в C#.
Я предпочитаю префикс всех частных переменных с «_», даже без геттеров или сеттеров. Эта методология позволяет мне сразу знать, когда какая-либо функция манипулирует своими частными переменными, пока я просматриваю код. Это похоже на мелочь, но это может быть очень полезно.
Старайтесь не использовать защищенные переменные, если вы не знаете, что делаете. Они злы. Единственная причина, по которой вы когда-либо использовали, - разрешить подклассам доступ к переменным в суперклассе. Однако, если значение защищенной переменной было как-то очень важным для суперкласса, суперкласс никогда не узнает, изменил ли его подкласс. Лучше сделать его приватным и предоставить защищенный геттер и/или сеттер для подкласса, хотя это немного больше. Таким образом, суперкласс может реагировать на любые попытки изменить значение.
- 1. Что такое "[]" знак angular.js?
- 2. Что такое PHP @ знак
- 3. Что такое знак char?
- 4. Что такое значение «$» в некоторых именах функций?
- 5. переменные в именах переменных
- 6. Что такое область видимости в Javascript?
- 7. Что такое проверка видимости в индексном сканировании
- 8. Что такое знак «¿» в начале исходного файла?
- 9. Что такое «не» знак в партии
- 10. Что такое знак двойного процента (%%) в R
- 11. Что такое знак «=>» в запросах LINQ?
- 12. Что такое «водяной знак» в VSTS
- 13. Что такое знак вопроса в атрибуте XML?
- 14. Что такое знак тройного доллара в jquery?
- 15. Что такое знак доллара ($) в angularjs
- 16. Что такое знак @ перед параметрами
- 17. Что такое регистрационный знак lavaboom
- 18. Что такое потоки в функциях actionscript?
- 19. Что такое соглашение об именах пакетов, которое используется в Dart?
- 20. C символ # @ в именах переменных
- 21. Что такое соглашение об именах NodeJS?
- 22. Что такое соглашение об именах lexer?
- 23. Знак периода Mysql в именах учетных записей
- 24. Как обрабатывать знак фунта ('#') в именах файлов?
- 25. Экранирование переменных в именах путей, используя CSH
- 26. Что такое знак (@) в пакетном файле и что он делает?
- 27. Что такое фактическое использование переменных переменных?
- 28. Соглашения об именах переменных экземпляра в какао
- 29. Что такое? в декларации переменных JSX React?
- 30. Что такое действительные символы в переменных Jenkins?
Я понял, что это соглашение об именах, которое я хотел знать, что это означало. – Anton
@Anton Вот почему я включил ссылку, так что вы могли понять, почему соглашения об именах значительны. Однако, с точки зрения языка, это несущественно. – Joseph