posts - 22, comments - 17, trackbacks - 0, articles - 0
  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

AS2:动态改变实例对象所属的类

Posted on 2007-09-10 15:46 flashlizi 阅读(408) 评论(0)  编辑 收藏 引用 所属分类: AS2
Object对象有2个属性:__proto__和prototype。__proto__是引用用于创建对象的类或构造函数的 prototype属性;prototype是对类或函数对象的超类的引用。在as2中,对象的基本继承都是通过原型链的。因此,我们可以利用Object对象的__proto__和prototype属性来实现动态改变实例对象所属的类。

//类classA:
class classA
{
    function classA ()
    
{
        trace (
"This is a instance of classA")
    }

}


//类classB:
class classB
{
    function classB ()
    
{
        trace (
"This is a instance of classB")
    }

}

接下来看具体的改变实例对象所属的类的实验代码:

import classA;
import classB;
var flashrek 
= new classA();
trace(flashrek 
instanceof classA);//true
var className = classB;
flashrek.__proto__ 
= className.prototype;
className.apply(flashrek, 
null);
trace(flashrek 
instanceof className);//true
只有注册用户登录后才能发表评论。