Browse > Home > Archive: 七月 2007

| Subcribe via RSS

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

七月 2nd, 2007 | No Comments , 178 views | Posted by flashlizi in Flash8/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