this指针:
如果A,B是两个不同的类,有如下用法:
(以下是Flex中的函数声明用法)
class A
{
private function UseClassB()
{
var b:B = new B();
b. UseB();
.........
b.a = this; //把当前类A 的信息内容赋值到B 中的一个变量,这样,B中就可以使用A中的public Function
}
public function UseA()
{
..................
}
}
class B
{
private var a:A; //在这里要声明a为B的一个变量
public function UseB()
{
...............
a.UseA(); //使用A中public的UseA方法。
}
}
像上面那样,把当前函数的this指针赋给另一个具有使用此类(A)的类,在当前类中声明一个新的类B,然后把当前A的值赋予,B中声明的一个A的变量,此时在B中调用A的公共方法即可,注意:这里在B中使用A类时要先用到A中创建的那个方法,即前面的UseClassB(),这样才能使A不为空。
这个A可以定义的任何地方,全局也可以。只要在使用之前先赋值。
注意:
this是当前程序运行的对象或类,如果这个程序模块(B)被多个线程使用,则新申请的这个B是使用的当前的this(即A),但此时若A中有使用B的方法,则这个方法中不能包含this,而应该直接用,即上面的b.a = new A(),不是this,如果是this,则多个B中使用A就会冲突的使用当前的A