对类或函数对象的原型对象的引用。该 prototype属性自动创建并附加到任何类 或您创建的函数对象。这个属性是静态的 特定于您创建的类或函数。例如,如果 你创建一个类,原型属性的值是由共享的 类的所有实例,只能作为类属性访问。 您的类的实例无法直接访问原型属性。
类的原型对象是该类的特殊实例 提供了一种在a的所有实例之间共享状态的机制 类。在运行时,在类实例上找不到属性时, 委托,它是类原型对象,检查它 属性。如果原型对象不包含该属性,则 进程继续进行原型对象的委托签入 层次结构中的连续更高级别,直到Flash Player或者 Adobe Integrated Runtime查找属性。
注意:在ActionScript 3.0中,原型继承不是主要的 继承机制。类继承,驱动 在类定义中继承固定属性,是主要的 ActionScript 3.0中的继承机制。
所以,从中我得到的印象是原型只是静态变量..我是对的吗?
答案 0 :(得分:7)
不完全是,作为原型实现的函数仍然作为实例方法执行。在静态功能中,您无权访问this
。
此外,它并不意味着将原型值设置为某个值,而是为每个实例设置值。它只是后备值,如果该类的对象没有明确设置它。
var o1:Object= {};
var o2:Object= {};
Object.prototype.foo = "foo";
o1.foo = "bar"
trace(o1.foo) // bar
trace(o2.foo) // foo