读书人

《王者归来》读书笔记 ── JavaScrip

发布时间: 2012-11-23 00:03:43 作者: rapoo

《王者归来》读书笔记 ── JavaScript 面向对象编程(2)
I. 什么是 prototype

JS 中对象的 prototype 属性可以返回对象类型原型的引用(确实拗口),让我们分开来理解。对象的类(Class)和对象实例(Instance)之间是一种“创建”关系,所以类(Class)是对象的一个类型(Type)。在面向对象领域里,实例和类型不是唯一的一对可描述的抽象关系。在 JS 里还有另外一个更高层次的抽象关系:类型(Type)与原型(prototype),它恰好和类型与实例的抽象关系构成了一个三层的链。

在生活中有个习语“照猫画虎”,这里的猫就是原型,而虎就是类型,用 JS 的 prototype 表示为:“虎.prototype = 某只猫”或“虎.prototype = new 猫()”。当然这只是个比喻。

要注意的是,原型模式要求一个类型在一个时刻只能有一个原型,这里有两层含义:

1. 每个具体的 JS 类型有且仅有一个原型(prototype),在默认情况下该原型是一个 Object 对象(不是 Object 类型);

2. 这个类型的实例的所有类型,必须是满足原型关系的类型联。看个例子:

nice    2 楼    andy54321    2009-03-12              对prototype理解了好多
tks

读书人网 >编程

热点推荐