为了账号安全,请及时绑定邮箱和手机立即绑定
  • 设计该模式背后的主要动力是促进形成松散耦合。在这种模式中,并不是一个对象调用另一个对象的方法,而是一个对象订阅另一个对象的特定活动并在状态改变后获得通知。订阅者也称为观察者,而被观察的对象称为发布者或主题。当发生了一个重要的事件时,发布者将会通知(调用)所有订阅者并且可能经常以事件对象的形式传递消息。
    查看全部
  • 老师应该漏了方法,正常的得这样吧 var $$ = ajQuery = function(selector) { //把原型上的init作为构造器 return new ajQuery.fn.init( selector ); } ajQuery.fn = ajQuery.prototype = { name: 'aaron', init: function() { console.log(this) }, constructor: ajQuery } //下边代码不能少吧 ajQuery.prototype.init.prototype = ajQuery.prototype;
    查看全部
    0 采集 收起 来源:分离构造器

    2015-05-12

  • eq()的实现原理就是在上面代码中的把eq方法内部转成jQuery对象: eq: function( i ) { var len = this.length, j = +i + ( i < 0 ? len : 0 ); return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );
    查看全部
    0 采集 收起 来源:get与eq的区别

    2018-03-22

  • get方法--是通过检索匹配jQuery对象得到对应的DOM元素,如下代码实现: get: function(num) { return num != null ? // Return just the one element from the set (num < 0 ? this[num + this.length] : this[num]) : // Return all the elements in a clean array slice.call(this); }
    查看全部
  • eq返回的是一个jQuery对象,get返回的是一个DOM对象。
    查看全部
    0 采集 收起 来源:get与eq的区别

    2015-05-12

  • end方法就是回溯到上一个Dom合集,因此对于链式操作与优化,这个方法还是很有意义的。 源码实现 既然是回溯到上一个DOM合集,那么肯定end方法中返回的就是一个jQuery对象了,所以我们看源码其实就是返回prevObject对象了,如下代码: end: function() { return this.prevObject || this.constructor(null); }
    查看全部
    0 采集 收起 来源:end与addBack

    2015-05-12

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

    2015-05-11

  • 实例方法的实现 简单一句话 ajQuery.fn.init.prototype = ajQuery.fn 基于var ajQuery = function(selector) { return new ajQuery.fn.init(selector); }
    查看全部
  • 通过new操作符构建一个对象,一般经过四步: A.创建一个新对象 B.将构造函数的作用域赋给新对象(所以this就指向了这个新对象) C.执行构造函数中的代码 D.返回这个新对象 ajQuery.fn.init.prototype = ajQuery.fn;
    查看全部
    0 采集 收起 来源:分离构造器

    2015-05-11

  • 首先我们看jQuery的入口都是统一的$, 通过传递参数的不同,实现了9种方法的重载: 1. jQuery([selector,[context]]) 2. jQuery(element) 3. jQuery(elementArray) 4. jQuery(object) 5. jQuery(jQuery object) 6. jQuery(html,[ownerDocument]) 7. jQuery(html,[attributes]) 8. jQuery() 9. jQuery(callback) 9种用法整体来说可以分三大块:选择器、dom的处理、dom加载。 换句话说jQuery就是为了获取DOM、操作DOM而存在的!所以为了更方便这些操作,让节点与实例对象通过一个桥梁给关联起来,jQuery内部就采用了一种叫“类数组对象”的方式作为存储结构,所以我们即可以像对象一样处理jQuery操作,也能像数组一样可以使用push、pop、shift、unshift、sort、each、map等类数组的方法操作jQuery对象了。
    查看全部
  • jQuery一共13个模块,从2.1版开始jQuery支持通过AMD模块划分,jQuery在最开始发布的1.0版本是很简单的,只有CSS选择符、事件处理和AJAX交互3大块。其发展过程中,有几次重要的变革: ☑ 1.2.3 版发布,引入数据缓存,解决循环引用与大数据保存的问题 ☑ 1.3 版发布,它使用了全新的选择符引擎Sizzle,在各个浏览器下全面超越其他同类型JavaScript框架的查询速度,程序库的性能也因此有了极大提升 ☑ 1.5 版发布,新增延缓对像(Deferred Objects),并用deferred重写了Ajax模块 ☑ 1.7 版发布,抽象出回调对象,提供了强大的的方式来管理回调函数列表。 每一次大的改进都引入了一些新的机制、新的特性,通过这些新的机制就造就了如今jQuery库,一共13个模块,模块不是单一的,比如jQuery动画,都会依赖异步队列、动画队列、回调队列与数据缓存模块等。 jQuery抽出了所有可复用的特性,分离出单一模块,通过组合的用法,不管在设计思路与实现手法上jQuery都是非常高明的。
    查看全部
    0 采集 收起 来源:jQuery整体架构

    2015-05-11

  • 9种用法整体来说可以分三大块:选择器、dom的处理、dom加载。 换句话说jQuery就是为了获取DOM、操作DOM而存在的!
    查看全部
  • 基础运用, js, api, 数据结构, 观察者模式
    查看全部
    0 采集 收起 来源:jQuery课程安排

    2015-05-07

  • $.noConflict()把$的控制权交给其他库
    查看全部
  • jQuery多库共存处理 多库共存换句话说可以叫无冲突处理。 总的来说会有2种情况会遇到: 1、$太火热,jQuery采用$作为命名空间,不免会与别的库框架或者插件相冲突。 2、jQuery版本更新太快,插件跟不上,导致不同版本对插件的支持度不一样。 出于以上的原因,jQuery给出了解决方案–– noConflict函数。 引入jQuery运行这个noConflict函数将变量$的控制权让给第一个实现它的那个库,确保jQuery不会与其他库的$对象发生冲突。 在运行这个函数后,就只能使用jQuery变量访问jQuery对象。例如,在要用到$("aaron")的地方,就必须换成jQuery("aaron"),因为$的控制权已经让出去了。
    查看全部

举报

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

微信扫码,参与3人拼团

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

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