« 一个IE6下重复加载的BUG firefox下border-collapse:collapse当table下有rowspan的bug »

javascript 类继承用法

prototype库的用法:

 5. Prototype 所使用的模拟面向对象JavaScript代码的两个函数
[Copy to clipboard] [ - ]
CODE:
//创建一个名为"Class"的全局对象
var Class = {
//它拥有一个用来创建新的对象构造器的函数
create: function() {
//创建一个匿名的对象构造器
return function() {
//调用它本身的初始化方法
this.initialize.apply(this, arguments);
}
}
}
//为对象"Object"添加静态方法,用以从一个对象向另一个对象复制属性
Object.extend = function(destination, source) {
//遍历欲扩展的所有属性
for (property in source) {
//并将它添加到目标对象
destination[property] = source[property];
}
//返回修改过的对象
return destination;
}
Prototype 确实只用了两个明显的函数来创建和维护其整个面向对象体系。你们可能已
发现,仅通过看观察代码,也能断定它不如Base 或者Crockford的类式方法那样强大。两
个函数的前提很简单:
Class.create():这个函数简单地返回一个可用做构造器的匿名函数包装。这个简单的构造
器做了一件事:调用和执行对象的initialze 属性。这意味着,你的对象里至少有一个包含函
数的initialize属性;否则,代码将会出错。
Object.extend():这个函数简单地从一个对象往另一个对象复制属性。当你使用构造器的
prototype属性时你能设计出一种更简单的继承的形式(比JavaScript中可用的缺省的原型
继承更简单)。
既然你已经了解了Prototype 的底层代码是如何工作的,程序3-6展示了一些例子,说
明它在Prototype 库自身中是怎样用来通过添加功能层来扩展天然的JavaScript 对象的。


  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Arwen Build 81206

湘 ICP 备 06003756 号
Copyright 山寨 Rights Reserved.