为了账号安全,请及时绑定邮箱和手机立即绑定
  • jQuery插件的开发分为两种: 一种是挂在jQuery命名空间下的全局函数,也可称为静态方法; 另一种是jQuery对象级别的方法,即挂在jQuery原型下的方法,这样通过选择器获取的jQuery对象实例也能共享该方法。
    查看全部
  • jQuery.prototype/jQuery.fn ——> Object Object.init——>function() function().prototype——>jQuery.fn 通过原型传递解决问题,把jQuery的原型传递给jQuery.prototype.init.prototype。 换句话说jQuery的原型对象覆盖了init构造器的原型对象,因为是引用传递所以不需要担心这个循环引用的性能问题。
    查看全部
  • ajQuery.fn = ajQuery.prototype = { name: 'aaron', init: function(selector) { this.selector = selector; return this; }, constructor: ajQuery } ajQuery.fn.init.prototype = ajQuery.fn 把jQuery.prototype原型的引用赋给jQuery.fn.init.prototype的原型,这样就把2个构造器的原型给关联起来了。
    查看全部
  • var $$ = ajQuery = function(selector) { //把原型上的init作为构造器 return new ajQuery.fn.init( selector ); } ajQuery.fn = ajQuery.prototype = { name: 'aaron', init: function() { console.log(this) }, constructor: ajQuery } 代码解释: init是ajQuery原型上作为构造器的一个方法,那么其this指向的就不是ajQuery了,因此this完全引用不到ajQuery的原型了,所以这里通过new把init方法与ajQuery给分离成2个独立的构造器。
    查看全部
    0 采集 收起 来源:分离构造器

    2015-06-25

  • 通过new操作符构建一个对象,一般经过四步: 1、创建一个新对象 2、将构造函数的作用域赋给新对象,this就指向了这个新对象 3、执行构造函数中的代码 4、返回这个新对象
    查看全部
    0 采集 收起 来源:分离构造器

    2015-06-25

  • jQuery对象的构建从性能上考虑,使用原型结构,与ajQuery类的结构相比,jQuery类的结构存在不同之处: 1、没有采用new操作符; 2、return返回的是一个通过new出来的的对象 。
    查看全部
    0 采集 收起 来源:对象的构建

    2015-06-25

  • var _jQuery = window.jQuery, _$ = window.$; jQuery.noConflict = function( deep ) { if ( window.$ === jQuery ) { window.$ = _$; } if ( deep && window.jQuery === jQuery ) { window.jQuery = _jQuery; } return jQuery; }; 代码解释: 通过类似swap交换的概念,先把之前的存在的命名空间给缓存起来,通过对比当前的命名空间达到交换的目的。 1、首先,先判断下当前的的$空间是不是被jQuery接管了,如果是则让出控制权给之前的_$引用的库。 2、如果传入deep为true的话等于是把jQuery的控制权也让出去了。
    查看全部
  • DOM文档的加载步骤 (1) 解析HTML结构。 (2) 加载外部脚本和样式表文件。 (3) 解析并执行脚本代码。 (4) 构造HTML DOM模型。//ready (5) 加载图片等外部文件。 (6) 页面加载完毕。//load
    查看全部
  • $(document).ready(function() { // ...代码... }) $(document).load(function() { // ...代码... }) ready先于load执行
    查看全部
  • 1、函数aQuery()内部首先保证了必须是通过new操作符构建,因此当前构建的是一个带有this的实例对象。 2、既然是对象,就可以把所有的属性与方法作为对象的key与value映射到this上,既可通过索引取值,也可以链式方法取值。 3、但是这样的结构是有很大的缺陷的,每次调用ajQuery方法等于是创建了一个新的实例,那么类似get方法就要在每一个实例上重新创建一遍,性能就大打折扣,所以jQuery除了实现类数组结构、方法的原型共享,而且还实现方法的静态与实例的共存。 示例代码如下: var aQuery = function(selector) { //强制为对象 if (!(this instanceof aQuery)) { return new aQuery(selector); } var elem = document.getElementById(/[^#].*/.exec(selector)[0]); this.length = 1; this[0] = elem; this.context = document; this.selector = selector; this.get = function(num) { return this[num]; } return this; }
    查看全部
  • (function(window, undefined) { var jQuery = function() {} // ... window.jQuery = window.$ = jQuery; })(window); 写法优势 1、window和undefined都是为了减少变量查找所经过的scope作用域。当window通过传递给闭包内部之后,在闭包内部使用它的时候,可以把它当成一个局部变量,显然比原先在window scope下查找的时候要快一些。 2、undefined也是同样的道理,其实这个undefined并不是JavaScript数据类型的undefined,而是一个普普通通的变量名。只是因为没给它传递值,它的值就是undefined,undefined并不是JavaScript的保留字。
    查看全部
  • 1、jQuery使用()将匿名函数括起来,然后后面再加一对小括号(包含参数列表),那么这小括号能把我们的表达式组合分块,并且每一块(也就是每一对小括号),都有一个返回值。 2、这个返回值实际上也就是小括号中表达式的返回值。所以,当我们用一对小括号把匿名函数括起来的时候,实际上小括号返回的,就是一个匿名函数的Function对象。 3、因此,小括号对加上匿名函数就如同有名字的函数般被我们取得它的引用位置了。所以如果在这个引用变量后面再加上参数列表,就会实现普通函数的调用形式。 示例代码: function oClick3(){ ;(function(){ show('ajQuery3') })() }
    查看全部
  • jQuery接口的设计原理 业务逻辑是复杂多变的,jQuery的高层API数量非常多,而且也非常的细致,这样做可以更友好的便于开发者的操作,不需要必须在一个接口上重载太多的动作。 Ajax的高层方法其实都是统一调用了一个静态的jQuery.ajax方法。 在jQuery.ajax的内部实现是非常复杂的,首先ajax要考虑异步的处理与回调的统一性,所以就引入了异步队列模块(Deferred)与回调模块(Callbacks), 所以要把这些模块方法在ajax方法内部再次封装成、构建出一个新的jQXHR对象,针对参数的默认处理,数据传输的格式化等等。
    查看全部
    0 采集 收起 来源:jQuery整体架构

    2015-06-24

  • 选择器、DOM处理、事件、动画处理、AJAX
    查看全部
    0 采集 收起 来源:jQuery课程安排

    2015-06-22

  • 回调函数、异步加载、数据缓存、动画队列
    查看全部
    0 采集 收起 来源:jQuery课程安排

    2015-06-22

举报

0/150
提交
取消
课程须知
源码的阅读不是一蹴而就的,需要大家有一定的功底,比如jQuery的基础运用以及API的熟悉度,除此之外要有牢固的javascript、DOM、CSS的基础功底,甚至还需要理解常见的设计模式、数据结构等等。当然大家也不要被这些给吓住了,理解,总是需要一种慢慢的学习过程。
老师告诉你能学到什么?
通过本课程的学习,您可以由浅入深地剖析jQuery库的设计与实现。 其中我们围绕的重心: 1、设计理念 2、结构组织 3、接口设计 4、模式运用 5、场景套用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!