首页 > 代码库 > jquery

jquery

    jquery的原理不难,一点就透,尤其是开源的东西,根本没有什么秘密可言,看jquery源码越久就越觉得它的原理,反倒没他的设计,规范更重要

jquery版本

技术分享

其实无论国人还是老外,以成败论是非都是不变的准则,jquery也是这样的准则,先实现在优化,越看1.0就越觉得,如果是让我来写,我估计也就这样....从修改程度上来看,1.0学思想,1.4学规范,5,6,7学优化/设计

jquery结构(1.0)

技术分享

"具有了对CSS选择符、事件处理和AJAX交互的稳健支持"->这是对1.0的总结,实现上并没有什么高大上,完全是用山寨技术,解决科幻课题,但是不管怎么说,结构上还算明确,如果是我的,可能jQuery.fn写到死了...

jquery对象

对象一个包含属性和方法的集合,jquery对象又有什么样的特点?
技术分享

1.创建jquery不需要new,javascript中new + 构造函数=对象,为了用户体验,如何不使用new?

2.在火狐中,1.4之前显示jquery对象为Object,1.4之后为Object[],Object[],是什么样的概念?

对象,数组和类数组

{}对象

所有对象的父类,可以通过.或者[]进行数据的获取

技术分享

可以看到其属性支持字母,数字,奇怪的字符还有关键字甚至各种空格,当然一般情况下还是\w\d(关键字什么的就算前台可以想办法处理,丢到后台就会出问题)


[]对象

数组是值得有序集合,能够以数字为索引的结构,都能称的上数组

一般表现为可以通过[num]的方式获取单个内容,且拥有length属性(size方法)

在javascript中自带的数组对象就是符合这样的特征,且他自带很多实用的方法

技术分享


Object[]对象

{}对象可以使用[sum],的方式进行数据的获取,很显然我可以自定义自己的数组对象,只要管理好length属性,他可以像传统数组一样工作,我们可以给他添加各种自定义的方法和属性又不影响正常的数组对象,当然,我们也不可以使用正常数组自带的方法了

"拥有length,split"的对象(火狐)

技术分享

当然这只是控制台上的增强现实功能

arugments是一个类数组,很显然,控制台将它理解为数组,但却没有数组(Array)下的方法

技术分享

document集合也是一个类对象,看起来很像HTMLCollection对象的集合,而且也没有Array下的方法

技术分享

就特点上而言,jquery是一个类数组,而且符合火狐增强浏览的一种类数组(1.4)

 

jquery