没有合适的资源?快使用搜索试试~ 我知道了~
prototype.js源码解度
需积分: 0 10 下载量 117 浏览量
2008-10-16
17:09:06
上传
评论
收藏 113KB DOC 举报
温馨提示
试读
46页
prototype.js源码解度.doc 收集来给大家研究。重要的是理解作者的风格思路,对JS的水平提高很有帮助。
资源详情
资源评论
资源推荐
收集来给大家研究。重要的是理解作者的风格思路,对 的水平提高很有帮助。
定义一个全局对象属性 在发布的时候会替换为当前版本号
一个空方法,其后的代码常会用到,先前的版本该方法被定义于 类中。
!" !#$%
%
创建一种类型,注意其属性 !是一个方法,返回一个构造函数。
一般使用如下
&'(!#$)返回一个类型,类似于 的一个 '( 实例。
要使用 &类型,需继续用 *&#$来获取一个实例,如同 的
'(*+!#$方法。
返回的构造函数会执行名为 (,的方法, (,是 - .对象的构造器方法
名字。
此时 (, 方法还没有定义,其后的代码中创建新类型时会建立相应的同名方法。
如果一定要从 上去理解。你可以理解为用 '(!#$创建一个继承
(/'( 类的类。
当然 不允许这样做,因为 '( 类是 0( 的
'(
!" !#$
" !#$
1(,(#1/ $)
%
%
%
创建一个对象,从变量名来思考,本意也许是定义一个抽象类,以后创建新对象都
2它。
但从其后代码的应用来看, .!更多是为了保持命名空间清晰的考虑。
也就是说,我们可以给 .!这个对象实例添加新的对象定义。
从 去理解,就是动态给一个对象创建内部类。
.!*3.!#$)
3.!2" !#2 !$
"# !$
245 !45)
%
2)
%
获取参数对象的所有属性和方法,有点象多重继承。但是这种继承是动态获得的。
如:
*3.!#$.*3.!6#$)
!2#.$)
此时 !对象同时拥有 和 .对象的属性和方法。但是与多重继承不同的是,!
!"3.!6将返回 "(。
旧版本的该方法定义如下:
3.!2" !#.!$
"#.!$
145.!45)
%
1)
%
新的形式新定义了一个静态方法 3.!2,这样做的目的大概是为了使代码更为
清晰
3.!2" !#.!$
3.!2(#141.!5$)
%
这个方法很有趣,它封装一个 ! 函数对象,返回一个新函数对象,新函数对象
的主体和原对象相同,
但是 .2#$方法参数将被用作当前对象的对象。
也就是说新函数中的 1引用被改变为参数提供的对象。
比如:
7 88288( 889
7 8828...8( 8...89
7!9
2! /:(6+2#88$)
...2! /:(6+2#8...8$)
1*( " !#$(#1( $)%
1*( ;1*( .2#...$)
7!9
那么,调用 1*( 将返回88但调用 1*( ;将返回8...8。
(是 << 后才出现的新方法#=! 好像很早就支持了$。
该方法更多的资料参考 >?=
12!"!(.@ !<A1(<A1(
阅读其后的代码就会发现,.2被应用的很广泛,该方法和
3.!2一样是 的核心。
还有一个 !((方法,应用起来和 (类似。可以一起研究下。
!.2" !#.!$
BB121)
" !#$
BB12(#.!/ $)
%
%
和 .2 一样,不过这个方法一般用做 1( 控件对象的事件处理。所以要传递
对象
注意这时候,用到了 !!((。它与 !(的不同好像仅仅是对参数
形式的定义。
如同 两个过载的方法。
!.2:C" !#.!$
BB121)
" !#$
BB12!((#.!DD*2*$)
%
%
将整数形式 -E6 颜色值转换为 F:& 形式
= .'(" !#$
2/1/#A$)
"#17A$ GH2/)
2/)
%
典型 - .风格的函数,将参数中的方法逐个调用,返回第一个成功执行的方法的返回
值
I
1" !#$
( )
"#G)7/ (/1)HH$
(.2/ 45)
( (.2#$)
.J)
%!!1#$%
%
( )
%
%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
一个设计精巧的定时执行器
首先由 '(!#$创建一个 2!(:! 类型,
然后用对象直接量的语法形式设置原型。
需要特别说明的是 /'((.!J方法,它调用上面定义的函数原型方法 .2并传
递自己为参数。
之所以这样做,是因为 I 默认总以 *2*对象为当前对象,也就是说,
如果 /'((.!J方法定义如下的话:
/'((.!J" !#$
I #1I:1"K !GGG$)
%
那么,1I :方法执行失败,因为它无法访问
1! (:! /属性。
而使用了 .2 以后,该方法才能正确的找到 1,也就是 2!(:! 的当前
实例。
2!(:! '(!#$)
剩余45页未读,继续阅读
leosming
- 粉丝: 15
- 资源: 27
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0