AS3:私有变量应该_

时间:2009-11-28 19:33:28

标签: actionscript-3

我认为AS3现在增加了私人能力。那么为什么我仍然应该使用下划线来预设私有变量?

private var _privVar:String;

4 个答案:

答案 0 :(得分:10)

我在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;
}

此示例getter / setter有点无用,因为您可以创建一个执行相同操作的公共属性。只有在获得或设置属性时需要执行特殊操作时才使用getter或setter。即便如此,通常最好只创建一个公共方法。

还有另外一点。就个人而言,我认为缩写变量或方法名称并不是一个好主意。因此,我将其称为 privateVariable ,而不是调用我的变量 privVar 。如果您使用具有自动完成/建议的IDE(例如FlashBuilder(Flex Builder)或FlashDevelop),则尤其如此。

请查看Adobe - coding conventions and best practices了解详情。

答案 1 :(得分:3)

你不必。这是鼓励可读性的东西,但绝不是强制性的。完全是个人偏好。

答案 2 :(得分:0)

使用下划线只是一种约定。我尽量避免它们,因为它与我的智力混淆。我习惯于在{flex}构建器中键入obj.va并点击ctrl-space来获取obj.variableName - 这对_variableName不适用

顺便说一句,早期版本的ActionScript是否要求您使用下划线为“私有”变量名称作序言?

答案 3 :(得分:0)

我认为你不应该缩写变量。它增强了可读性和自动完成功能。另一方面,在我的实践中,使用语法为function set someVar ( value ) : void的内置AS getter和setter并不是一件好事。它非常强化重构,因为在很多时候只是不知道某个变量是一个setter或getter。

在我以前工作的地方,我们使用了Java Beans属性访问约定,如function setSomeVar ( value ) : void。当然,因为它在AS社区中并不常见,所以像FlashDevelop这样的IDE不支持这样的getter和setter生成。