Prototype
Prototype
命名空间包含了使用 Prototype 库应具备的基本信息,同时它也是存放默认迭代器和函数的地方。
我们说它是“命名空间”是因为 Prototype
对象不是为了实例化而创建的,也没有混入其它的对象,
它仅只是一个单纯的名称空间。
Prototype 的版本
在脚本中,可以通过 Prototype.Version
获取版本号,以检测你当前使用的 Prototype
是否是某一个特定的版本。版本号是一个字符串(例如 "1.5.0")。现实中的一个例子是著名的
script.aculo.us 库,它在载入时会自动检测,以确保它所使用的
Prototype 的版本正确无误。
浏览器特性
Prototype 还提供浏览器的一些特性信息检测,并在它的源码中广泛使用。这样做的目的在于:首先,使 Prototype 的源代码更具有可读性;其次,脚本中可能需要检测浏览器的各种特性,将它们集中起来,更易于维护。
目前唯一可用的特性检测是浏览器是否支持 DOM Level 3
XPath,可通过 Prototype.BrowserFeatures.XPath
访问,获取一个 boolean
值。
默认迭代器和函数
Prototype 对象中的很多方法都会让使用者传入一个自定义的迭代器参数(最明显的莫过于 Enumerable
模块),但这个参数很多时候是可选的,它默认是一个“恒等变换函数”(一个迭代器,简单地返回它的参数,而不做任何其它处理)。
这就是 Prototype.K
函数,你会看到它在许多地方都被引用。
很多需要在内部调用其它函数的方法,在它要调用的函数不存在时,为避免自身抛出异常,会将丢失的函数转换为一个空函数。
所谓空函数,就是一个简单的忽略它自身的所有参数,什么都不做的函数。Prototype.emptyFunction
(注意,方法名的首字母小写)就是这样一个函数。
方法
emptyFunction
emptyFunction([argument...])
emptyFunction
不做任何事,也不返回任何值!