浅谈ActionScript3中的原型对象
来源:互联网 发布:手机网页排版软件 编辑:程序博客网 时间:2024/06/05 05:07
首先通过一个简单的例子来对prototype有一个感性直观的认识。Prototype是类中一个静态属性,它表示对类的原型对象的引用。
我们先来自己定义两个满足继承关系的类:
public dynamic class ChildClass extends ParentClass {
}
然后我们在脚本中写:
结果输出:
从这里的结果[object Object],我们可以看出第一个object 代表对象,而第二个Object代表Object类,整个的意思就是说这是一个对象,他是Object类。
我们可以动态地向原型对象中添加属性,并且在父类的prototype中添加的属性是可以被子类所共享的,下面通过一个例子加以说明,我们在父类的prototype中加入了一个sayHello函数。然后就可以在子类中对其进行访问,与之相对的是,若我们在子类的prototype中添加函数,则其他子类是无法访问到的。即用哪个类向原型加的属性,你就只能用这个类调用。
{
prototype.sayHello =function():String
{
return"hello,ptototype";
}
}
public class ChildOne extends ParentClass
{
}
public class ChildTwo extends ParentClass
{
}
public function onCreate():void
{
var strInfo:String= ChildOne.prototype.sayHello();
trace(strInfo);
var str1:String= ChildTwo.prototype.sayHello();
trace(str1);
ChildOne.prototype.testFunc =function() :void
{
trace("just for test.");
}
ChildOne.prototype.test();
//ChildTwo.prototype.test();
}
类的实例跟类在原型对象上还有一点区别的,一个类的实例最初的原型对象都是未定义的,既不是O bject类也不是定义这个实例的类。也就是说当我们对一个类进行实例化时,这个实例的原型对象是未定义的。
我们对上面定义的ChildOne类进行实例化:
trace(c1.prototype);
测试输出:
但是实例的prototype属性我们可以动态给他赋值,前提是类必须要是动态类。代码如下:
var c1:ChildOne =new ChildOne();
trace(c1.prototype);
测试输出:
这表明是它的原型对象是一个类,类名为ChildTwo。
最后再补充一点关于命名空间的知识, 命名空间中可以放置函数,变量和常量,但不能放置类的定义。下面是一个简单的命名空间的实例:
public namespace myspace ="http://phinecos.cnblogs.com";
myspace function myfunc():void
{
trace("test namespace.");
}
use namespace myspace;
myfunc();
myspace::myfunc();
- 浅谈ActionScript3中的原型对象
- 浅谈ActionScript3中的原型对象
- 浅谈ActionScript3中的原型对象
- 浅谈JavaScript中的原型模式
- 浅谈JS中的原型链
- 浅谈JavaScript中的原型prototype
- javascript中的原型对象
- js 中的对象原型
- javascript中的原型对象
- javascript中的原型/对象
- js中的对象/this/原型/原型链
- 浅谈构造函数和原型对象
- JS核心系列:浅谈 原型对象和原型链
- JS核心系列:浅谈原型对象和原型链
- JS核心系列:浅谈原型对象和原型链
- js中的prototype原型对象
- javascript中的 对象 和 原型
- 面向对象中的原型链
- BMH子串查找算法(PHP实现)
- Qrcode的二维码
- 引用
- 小希的迷宫(并查集)
- DEDE全局标签:loop 万能调用标签
- 浅谈ActionScript3中的原型对象
- Android:Layout_weight的深刻理解
- 记今日(2014.10.12)
- 一个搜狗拼音忠实用户的闲扯
- AsyncTask的用法
- 第7周 项目3-1 简单分支问题体验
- eclipse运行ssh项目出现"HTTP Status 500 - Unable to instantiate Action"
- Java设计模式菜鸟系列(十九)备忘录模式建模与实现
- 动态规划最长公共子序列