日期:2014-05-16  浏览次数:20382 次

[Js++开发历程] 还是那个字符“$”

“$”这个字符在很多Javascript框架中都有用到,所以我们也不妨用用。

那她具体有何用呢?我考虑了以下几点:

1.“$”为一个静态对象,一般是作成工具类,“$()”为Jclass对象的prototype。

2.“$”的这个变量形成的函数根据参数个数的不同,会返回不同的结果

3.对于$函数,有以下考虑

? 3.1 $() 参数为空值时,返回 Jclass.prototype 

? 3.2 $(HTMLElement) 参数为HTMLElement时,返回一个即时Jclass对象。返回的对象不能存储,因为此对象的dom会被下一次调用时更新

? 3.3 参数为字符串时,返回通过querySelectorAll方式获取的Jclass对象

? 3.4 $({$:'class',id:'id1',name:'jspp'}) 参数为对象时,且含有$属性时,创建一个构造函数参数为{id:'id1',name:'jspp'},类名为'class'对象

? 3.5 $(function(){}) 参数为函数时,文档加载完成后,回调此函数

? 3.6 其他的参数,返回一个Jclass对象

?

4.由于$()返回是Jclass.prototype,所以对$()的扩展就是对Jclass.prototype的扩展,当然也可以通过$.fn来获取Jclass.prototype

5.$().$()函数,即Jclass.prototype的$()函数,有以下考虑

? 5.1 $() 参数为空值时,返回Jclass对象第一个dom

? 5.2 $({$:'class',id:'id1',name:'jspp'}) 参数为对象,且含有$属性时,创建一个构造函数参数为{id:'id1',name:'jspp'},类名为'class'对象,

? ? ? 并将自己(Jcalss对象)赋值给生成对象的owner属性上

? 5.3 $(function(){}) 参数为函数时,第一个dom加载完成后,回调此函数

? 5.4 其他参数 查看 $().query

?

6.Jclass的链式调用,Jclass的类很多函数都会返对象本身,所以可以采用链式调用的方式,比如:$('id1').first().back().css();

7.由于Jclass是封装dom的数组对象,因此就是提供很多返问数组元素的机制

? 7.1 ?如何对数组进行遍历:get,head,tail用于获取数组对象的index个、第1个、最后一个dom生成的Jclass对象

? 7.2 ?如何对dom对象的遍历:first,last,prev,next,parent 用于获取Jclass的第index个dom的第一个孩子、

? ? ? ?最后一个孩子、前一个、后一个、父亲的dom生成的Jclass对象

? 7.3 ?遍历后如何退回:back 获取创建此Jclass对象的创建者的Jclass对象