关于“此”范围是AS3的最佳实践/编码标准是什么?有一个吗?我觉得它确实有助于标准化和我的可读性,但有时它似乎“太多”。
例如,是否真的有必要在下列文件中使用"this“(我知道它没有”this“)?
private var _item:Object;
private var selectedItem:Object;
public function set item(value:Object):void
{
this._item = value;
if (this._item["label"] == "doodad")
this.selectedItem = value;
}
public function set item(value:Object):void
{
return this._item;
}发布于 2009-03-06 19:57:37
除非您希望防止本地作用域变量(例如,方法参数)和实例变量之间的命名冲突,否则不需要“此”。
在您的示例中,您已经使用下划线来标记私有变量,因此不使用"this“是一个额外的原因,因为您实际上说了两次相同的话。
发布于 2009-03-06 17:04:03
这当然没有必要,但我同意它可以帮助提高可读性。由于我更多地使用动态语言(例如Perl和Python),这样的约定对于快速确定变量和函数的作用域/位置至关重要。如果这个会议对你有用,我不认为这是件坏事,就其本身而言。
因此,我花了几个小时重新格式化代码,其中包含了阻碍可读性的笨拙约定。
例如:一个和我一起工作的人写了这样的作业:
var foo:String= "bar";这令人恼火(我更喜欢“=”,这样我就可以清楚地看到操作符了),我花了很多时间清理我不得不维护的数千行代码。他的惯例(虽然我们争论了好几次,但他拒绝妥协)往往妨碍了我的工作。
与你一起工作的人要团结一致。如果他们需要支持您的代码,并且发现这会加重您的代码,那么可能不值得将它留在这里。如果您不希望任何人直接使用源代码,请使用帮助您理解代码和文档(某处)含义的约定。
发布于 2009-03-06 17:29:42
如果您在一个团队中工作,请坚持团队的编码约定。
但就我个人而言,我发现在消除歧义所不需要的情况下,明确使用"this",会对静态类型语言(如AS3 )的可读性产生负面影响(动态语言是另一回事!)。
类应该只有一个责任,所以通常不应该有太多的属性。在方法中,通常处理三种类型的变量:临时局部变量、方法参数和属性。方法不应该太长,因此应该很容易发现这三种类型之间的区别--如果它没有在本地定义并且没有作为参数传递,那么它就是一个属性。如果整个方法不适合您的屏幕,那么它可能太长了!
我只在需要时使用"this“来消除属性和同名参数之间的歧义。
https://stackoverflow.com/questions/619505
复制相似问题