首页 > Web开发 > 详细

jQuery源码阅读计划-8月3日-1/40

时间:2016-08-03 21:37:22      阅读:258      评论:0      收藏:0      [点我收藏+]

1.jQuery无new构建

我们希望做到的事情是:我们只需要写var $ = jQuery();就可以在新建一个工具对象,同时如果我们想var $ = new jQuery()的时候也可以得到同样的效果。

做到这件事情的关键就是将所有工具方法都写在jQuery.prototype里面,并且在无new构建的时候,返回和使用new构建时一样的对象。

怎么做才能返回一样的对象呢?

返回对象首先应该想到的应该就是return new xxx();这样的形式。

那么这个xxx()应写在哪里呢?

应该写在jQuery.prototype里面,因为我们希望返回的对象是能操作所有工具和属性的,所以xxx的位置应该在jQuery.prototype里面

  • 要实现无new构建,首先jQuery对象本身必须是一个函数
  • 这个函数返回自己的prototype中的一个init构造函数生成的对象
  • 返回的这个对象应该是一个和jQuery.prototype一样的对象(但不是同一个对象)
  • 但是问题在于init构造函数中的return this中的this指向并不是我们想要的jQuery.prototype
  • 解决方法很简单,只需要将init的prototype指向jQuery.prototype,函数jQuery返回的对象就可以得到jQuery.prototype的所有属性和方法

 

2.链式调用

很简单,所有方法在操作完之后都return this就可以了。

 

3.插件接口

所谓的插件接口其实就是extend方法,这个方法并不用来专门接入插件。

这个方法仅用于扩展对象的属性和方法。

jQuery和jQuery.fn上都有这个方法(实现完全一样),其中jQuery上的这个方法常用来扩展对象,jQuery.fn上的这个方法用来接入插件的新方法。

对于extend的实现有几点需要注意:

jQuery源码阅读计划-8月3日-1/40

原文:http://www.cnblogs.com/magicshow/p/5734225.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!