这是我的代码:
package
{
import flash.display.Sprite;
public class MyClass extends Sprite
{
private var abc:String = "123";
public function MyClass()
{
}
public function myfunc():void
{
dispatch("456");
}
private function dispatch(abc:String):void
{
trace(abc);
}
}
}
调用myfunc()
函数时,跟踪将返回456
。如何让它访问全局变量?
谢谢。
答案 0 :(得分:4)
使用this
keyword:
private function dispatch(abc:String):void
{
trace( this.abc );
}
答案 1 :(得分:1)
首先,private var abc:String = "123";
不是全局变量。它是类的私有成员变量。它的范围是全班。在具有相同名称的成员方法中添加参数时,该参数在该方法中具有本地范围,并且该本地参数变量隐藏了同名的类成员。
private function dispatch(abc:String):void {
// here abc has local scope and it hides the class member abc
}
您有两种方法可以解决此问题:
private function dispatch(ab:String):void
。现在ab
是局部变量,abc
是类成员变量。this.abc
访问类成员。