我以为AS3现在已添加了私人功能。那为什么还要在私有变量前加上下划线呢?
private var _privVar:String;
我将ActionScript 3当作遵循Adobe风格的通用规则。
除非您使用getter or setter,否则不要对私人变量使用下划线。例如:
private var _foo:String;
public function get foo():String
{
return _foo;
}
public function set foo(value:String):void
{
_foo = value;
}
此示例获取器/设置器有点用处,因为您可以将公共属性设置为执行相同的操作。仅在获取或设置属性时需要执行special操作时才使用getter或setter方法。即使那样,通常最好也只是创建一个公共方法。
还有另一点。我个人认为缩写变量或方法名不是一个好主意。因此,与其将我的变量命名为privVar,不如将其命名为privateVariable。如果您使用的是具有自动完成/建议功能的IDE(例如FlashBuilder(Flex Builder)或FlashDevelop),则尤其如此。
您不必。它鼓励可读性,但绝不是强制性的。完全是个人喜好。
使用下划线只是一种约定。而且我尽量避免使用它们,因为它会干扰我的智能。我习惯于在Flex Builder中输入obj.va
并按ctrl-space来获取obj.variableName
-在_variableName
]中无法正常工作
顺便说一句,ActionScript的早期版本是否要求您在下划线之前给“私有”变量名添加前缀?
我认为您不应缩写变量。它增强了可读性和自动完成功能。另一方面,在我的实践中,使用语法为function set someVar ( value ) : void
的内置AS getter和setter并不是一件好事。它使重构变得非常困难,因为当不知道某个变量是一个setter或getter进入很多时间时。