this在两个类之间的用法

来源:互联网 发布:淘宝商品拍照 编辑:程序博客网 时间:2024/06/05 13:21

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