jquery创建函数的方式_第1页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、jquery创建函数的方式本专栏会依次按部就班的讲解 jquery 的源码。进入源码后最外层的框架就是这样了,可以看到整体是一个自执行函数,然后在函数体内做了一些推断运行环境的操作,以便于适用于 common.js 规范。可以看到假如是扫瞄器运行环境那么自执行的其次个参数的 noglobal 参数是 undefined,翻到源码最下面可以看到:这里假如是扫瞄器运行环境下就会向 window 全局上定义一个 jquery($)的变量。拿到了内部的变量 jquery 的引用。或许你现在已经刻不容缓的想看看 内部变量 jquery 毕竟是什么了,但是我们需要学习到的是,我们在自己写代码、造轮子的时候

2、应当学习这种模式,所有的业务规律写到了一个函数中,这样在库内部声明的变量就不会污染全局。最后为用户裸露出一个统一的接口——jquery。这样我们就可以在外部挺直用法 jquery 或者 $ 了。接下来就让我们再次进入源码,看看 jquery 这个内部的变量毕竟是什么。在看之前,我门可以先来大胆的猜想一下。试想,我们在用法 jquery 的时候的使用:这样简容易单的代码就可以猎取到了页面中的全部 标签并设置粉色的背景色。从这里我们可以看到我们拿到 $ 变量是把它当作一个函数在调用,所以它可能是下面的写法:我们还可以用法到 jquery 上面的一些属性或者办法,例如,对于以

3、上两种办法,都可以实现,但是我认为第一种写法更好一些。另外我们可以在控制台打印一下 :可以看到这其实是一个对象,也就是说调用 $(),办法会返回一个对象。在 创建对象需要用法 new 操作符加构造函数来创建,我们可以先理解 jquery 就是一个构造函数,但是为什么这里并没有用法 new 关键字呢?我们带着自己的揣测和疑问进入源码:直到看到这里我们就一目了然,这不就是一个工厂模式 吗?这里普及一个创建型的设计模式——工厂模式。工厂模式就是允许我们用法函数返回值的形式构造一个对象,用法它就几点益处:用法者不需要知道构造函数是谁不需要用法 new 操作符实现一个简易的工厂模

4、式:可以看到我们在用法的时候并不知道内部的构造函数是谁,也并没有用法 new 操作符。回到 jquery 的源码,这个时候我们就已经知道了为什么我们在用法的时候会那么调用了。那么问题来了,源码内部的真切的构造函数毕竟是谁呢?我们看到工厂函数的内部返回结果为 所以我们顺藤摸瓜, 又是什么呢?查找源码,我们可以看到:也就是说 其实是拿到了 的引用,那么原型对象上的 init 函数又是什么呢?到这里目前的疑问就已经解决完了。总结一下就是 jquery 实际是一个工厂函数,内部实例化了 jquery 原型对象上的 init 构造办法。这里你可能会有一个疑问,我们为什么不这样写:我们这样,函数的返回值不就挺直是一个 jquery 的实例对象了吗?实际上这样是会报错的,试想我们用法 new 操作符创建对象会发生什么:创建一个对象绑定 this 指向新创建的对象执行构造函数内部的代码使该对象的 属性指向构造函数的出问题的是第三个环节,我们会执行该构造函数,那么假如挺直 那么函数执行栈不就溢出了吗,所以就报错了。假如你已经为 jquery 的作者的这样的设计激动吃惊,那么我会告知你,今日的主角才刚正要来临了!精心的我们已经发觉了,在 jqtotype 对象上有无数的办法:,等等。我们只是给 jquery 的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论