原型 prototype 用法释疑 |
| 作者:佚名 来源:闪吧 作者: 与梦同行 更新:2007-1-13 20:48:58 错误报告 我要投稿 |
原型属性 在ActionScript中,每个构造函数都有一个属性,称为 prototype (原型),它是一个对象。通过下面的代码就可以验证这一点:
trace (typeof Array.prototype); // 输出:object 前面已经讨论过,可视类的构造函数并不创建实例。然而它们也并不是没有用处的。Button、MovieClip 和 TextField各自都有一个原型对象,就像这样:
trace (typeof Button.prototype); // 输出:object
但是,表态内置对象,如Math、Stage和Mouse,都没有原型:
trace (typeof Math.prototype); // 输出:undefined
没有原型属性,Math、Stage和Mouse就不能有构造函数,也不能成为类。原型对象是将一个类维系在一直的纽带。
类的定义从构造函数开始,例如Widget():
function Widget();
Widget()就会被自动分配一个原型属性Widget.prototype:
trace (typeof Widget.prototype); // 输出:object
我们可以在Widget.prototype中加入新的属性,如size属性:
// 向Widget.prototype中加入一个属性
Widget.prototype.size = 10;
如果稍后我们创建了一个新的Widget实例,它就会自动继承size属性:
// 创建一个实例
w = new Widget();
// 测试size属性
trace (w.size); // 输出:10
所有的 ActionScript 类都具有这个特征。每个实例都从它的类构造函数的原型继承属性。例如:
· 所有的影片片段都继承自 MovieClip.prototype。
· 所有的数组都继承自 Array.prototype。
· 所有的文本域都继承自 TextField.prototype。
重申:以上非我所写,是摘自《Flash MX 编程与创意实现》。作者:Robert Penner
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |