一:每个类都有一个原型,即Prototype.它是一个对象。我们用
trace(typeof MovieClip.prototype)// object
trace(typeof color.prototype)// object 这是区分类和对象的好方法。math 不是类,我们用
trace(typeof Math.prototype)// undefined 这就是类和对象的区别了。
二:每个实例又都有一个__proto__属性。我们用
_root.createEmptyMovieClip("mc",1);
trace(typeof mc.__proto__);// object 那么实例和类的关系就不难知道了。是将实例的__proto__和类的prototype相连起来。接上的例子我们用:
trace(mc.__proto__==MovieClip.prototype)// true 这就为我们继承带来了方便。
三:继承的标准方法是用
new
child.prototype=new parent(); 我们已经理解了实例的创建,也就不难理解这句了。是将child的原型的属性__proto__和parent相连。因此成了 父子类。这也说明对象是有__proto__的。 既然对象是有__proto__的,那么Math 也应该有,是的。我们用
trace(typeof Math.__proto__);// object 四:用原型直接建立继承
我们知道了上面的事实,就可以直接用语句来建立继承。
child.prototype.__proto__=parent.prototype; 即可。呵呵,这可能是众所周知的事实,而我还在说,不好意思,我是新来的