所以我今天读了很多关于 with 语句的性能、可读性和类似的东西,但我仍然不确定我是否应该或不应该在 AS3 中使用 with 语句。
使用 with 语句似乎与创建带有引用的本地 var 相同。有人可以提供有关此主题的详细信息吗?
所以我今天读了很多关于 with 语句的性能、可读性和类似的东西,但我仍然不确定我是否应该或不应该在 AS3 中使用 with 语句。
使用 with 语句似乎与创建带有引用的本地 var 相同。有人可以提供有关此主题的详细信息吗?
我认为,最大的问题with
不是编译时检查。任何错误只会在运行时被发现。但它有助于清理代码,我有点喜欢它。只要知道你在做什么,它可能会有用。
好吧,从我自己的个人基准来看,with() 语句实际上显示得慢了一点。这没什么大不了的,除非你试图从你的电影中挤出每一盎司的表现。对于针对变量而不是常量的 for 循环,或者针对循环的 while 循环,也可以这样说。除非您在大量迭代中复合这些循环,否则您实际上不需要关心它。
至于代码的可读性,我认为使用 with() 可以使外观更清晰。这一切都归结为编码风格。我真正使用 with() 语句的唯一一次是使用已知目标。假设您让鼠标事件处理程序在单击时选择对象,并将其设置为 currentObject。然后你可以有一个函数来做类似的事情
with(currentObject)
{
x = 100;
y = 100;
alpha = 0.5;
}
当然你可以用其他方式做,但就像我说的那样。它归结为编码风格。通过使用这种方法,我真正看到的唯一节省是缩短击键次数与执行 currentObject.x = 100; 当前对象.y = 100;
with
是纯语法糖。
在性能方面,这显然不是优化。我已经运行了几次循环,它似乎比通常的属性访问还要慢。
在可读性方面,我什至不确定是否有收获。我实际上更喜欢使用Grant Skinner 提议。但是在某些情况下它可能有用: with (event.target as MovieClip)
,因为否则它需要一个中间变量声明。
结论:在大多数情况下,不要使用它。