var Class=function(B)
{
var A=function()
{
// 存在initialize函数的话就执行此函数,否则直接返回
// arguments[0] 在什么情况下会 === null ?
return(arguments[0]!==null&&this.initialize&&$type(this.initialize)=="function")?this.initialize.apply(this,arguments):this;
};
$extend(A,this);
A.prototype=B;
A.constructor=Class;
return A;
};
Class.prototype=
{
extend:function(B)
{
var C=new this(null);
// 属性copy,如果原Class中存在此属性时,根据属性的type
// 对属性值进行合并或者包装;否则直接设置此属性值
for(var D in B)
{
var A=C[D];
C[D]=Class.Merge(A,B[D]);
}
// 构造新的Class
return new Class(C);
}
}
Class.Merge=function(C,D)
{
// 如果父Class中存在此属性,且不是同一个对象
if(C&&C!=D)
{
var B=$type(D);
if(B!=$type(C))
{
return D;
}
switch(B)
{
// 如果此属性值是函数类型的话,创建新的函数对象A,将其parent属性
// 设置为父Class中的同名函数对象,并返回A
case"function":var A=function()
{
// 执行此函数时,会先对当前执行对象(子对象)的parent属性设置为该函数对象的
// parent属性(函数对象C),也即父Class中的同名函数对象,然后再用
// 子对象的上下文来执行扩展时定义的该函数对象D。
// 这样设置以后,在D中要想访问父类中的同名函数对象时(相当于java中在子类中通过super访问父类中的方法),
// 使用this.parent.call(this)即可。
this.parent=arguments.callee.parent;
return D.apply(this,arguments);
};
A.parent=C;
return A;
# 如果是一般对象的话,进行属性合并后直接返回
case"object":return $merge(C,D);
}
}
return D;
};
分享到:
相关推荐
MooTools是一个简洁,模块化,面向对象的JavaScript框架。它能够帮助你更快,更简单地编写可扩展和兼容性强的JavaScript代码。Mootools从Prototype.js中汲取了许多有益的设计理念,语法也和其极其类似。但它提供的...
mootools框架入门教程mootools框架入门教程mootools框架入门教程
MooTools 帮助文档 api ajax
Joomla 自带JS库 Mootools API,推荐给Joomla爱好者
mootools1.1.js
mootools与致力页面开发的朋友一起分享. 本资料适合于对mootools的学习并且可以mootools开发的参考资料
NULL 博文链接:https://stonejava.iteye.com/blog/255141
mootools相关chm,小动画gif教程。网上收集的资料。.
MooTools1.4中文PDF手册+MooTools-Core-1.5.1.js
MooTools是一个简洁,模块化,面向对象的JavaScript框架。它能够帮助你更快,更简单地编写可扩展和兼容性强的JavaScript代码。Mootools从Prototype.js中汲取了许多有益的设计理念,语法也和其极其类似。但它提供的...
基于mootools的tree和table控件
MooTools 1.2 最新中文版手册
mootools之div层拖动学习的好资料 mootools之div层拖动
Mootools 1.2 CHM手册
Mootools v1.11 文档 pdf html Mootools v1.2.1 js
mootools-release-1.11
MooTools1.2.js 无压缩版,完全的源代码。
mootools已经更新到了1.2版本 不过网上很多的手册多是1.1版本的 在1.2版本对于1.1版本有很多改变 所以对于想要学习和手头上还没有MOOTOOLS API的朋友 1.1版本已经不适合了 这个资源是MOOTOOLS 1.2 中文版手册 绝对...
txt文档。对mootools的每个js文件进行方法注释,
MooTools是一个简洁,模块化,面向对象的开源JavaScript web应用框架。它为web开发者提供了一个跨浏览器js解决方案。...3.高效的组件机制,可以和flash进行完美的交互。4.对于DOM的扩展增强,使开发者更好的利用document