为了账号安全,请及时绑定邮箱和手机立即绑定
  • 理解观察者模式:发布订阅(Publish/Subscribe)


    观察者的使用场合就是:当一个对象的改变需要同时改变其它对象,并且它不知道具体有多少对象需要改变的时候,就应该考虑使用观察者模式。


    JS里对观察者模式的实现是通过回调来实现的,作为 $.Callbacks() 的创建组件的一个演示,只使用回调函数列表,就可以实现 Pub/Sub 系统,将 $.Callbacks 作为一个队列。

    查看全部
  • 使用回调函数,总的来说弱化耦合,让调用者与被调用者分开。

    调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件的被调用函数

    查看全部
  • 函数本质:简单的理解函数本质上就是输入和输出之间实现过程的映射


    理解JS中的函数:

    1、能“存储”在变量中

    2、能作为函数的实参被传递

    3、能在函数中被创建

    4、能从函数中返回


    理解JS中的回调函数:

    1、使用回调函数方便异步处理,例如AJAX

    2、要求执行某些操作后执行回调函数

    查看全部
    0 采集 收起 来源:理解回调函数

    2022-08-08

  • $.each()函数和$(selector).each()是不一样的,后者是专门用来遍历一个jQuery对象的,是为jQuery内部服务的。


    $.each()函数可用于迭代任何集合,无论是“名/值”对象(JavaScript对象)或数组。


    jQuery的实例方法最终也是调用的静态方法。

    查看全部
  • 迭代器设计:迭代器是一个框架的重要设计。我们经常需要提供一种方法顺序用来处理聚合对象中各个元素,而又不暴露该对象的内部,这也是设计模式中的迭代器模式(Iterator)

    查看全部
    0 采集 收起 来源:迭代器

    2022-08-08

  • 通过eq方法只能产生一个新的对象,但是如果需要的是一个合集对象要怎么处理:

    使用.slice( start [, end ] )

    查看全部
    0 采集 收起 来源:get与eq的区别

    2022-08-08

  • get与eq的区别:

    eq返回的是一个jQuery对象,get返回的是一个DOM对象

    查看全部
    0 采集 收起 来源:get与eq的区别

    2022-08-08

  • end与addBack的链式属性:

    新jQuery对象添加prevObject属性,我们看到prevObject其实还是当前jQuery的一个引用罢了,所以也就是为什么通过prevObject能取到上一个合集的原因了

    查看全部
    0 采集 收起 来源:end与addBack

    2022-08-08

  • 回溯处理的设计:

    1、.end():可以回溯到之前的Dom元素集合,prevObject

    2、.addBack():调用它会在栈中回溯一个位置,然后把两个位置上的元素集组合起来,并把这个新的、组合之后的元素集推入栈的上方。


    利用这个DOM元素栈可以减少重复的查询和遍历的操作,而减少重复操作也正是优化jQuery代码性能的关键所在。

    查看全部
  • 插件接口的设计:接口自定义扩展

    jQuery.extend({
        data:function(){},
        removeData:function(){}
    })
    
    jQuery.fn.extend({
        data:function(){},
        removeData:function(){}
    })
    查看全部
  • jQuery.extend( object ) 表示将object合并至jQuery上

    jQuery.extend( target, object1, object2) 表示将object1, object2合并至target上


    这也是target如下设置的原因

     var target = arguments[0] || {},
         i = 1,
         length = arguments.length;
    
    //只有一个参数,就是对jQuery自身的扩展处理
    if (i === length) {        
        target = this; //调用的上下文对象jQuery/或者实例
        i--;
    }
    查看全部
  • jQuery的Internal DSL形式带来的好处

    1、编写代码时,让代码更贴近作者的思维模式;

    2、阅读代码时,让读者更容易理解代码的含义;

    3、应用DSL可以有效的提高系统的可维护性(缩小了实现模型和领域模型的距离,提高了实现的可读性)和灵活性,并且提供开发的效率


    jQuery的这种管道风格的DSL链式代码,总的来说:

    1、节约JS代码;

    2、所返回的都是同一个对象,可以提高代码的效率。


    通过简单扩展原型方法并通过return this的形式来实现跨浏览器的链式调用。


    但是这种方法有一个问题是:所有对象的方法返回的都是对象本身,也就是说没有返回值,所以这种方法不一定在任何环境下都适合

    查看全部
  • DSL是指Domain Specific Language,也就是用于描述和解决特定领域问题的语言

    DSL分为内部DSL和外部DSL。

    jQuery属于内部DSL。外部DSL需要编写解析器。

    查看全部
  • 静态与实例方法共享设计:实例方法取于静态方法

    function jQuery() {...}
    
    jQuery.each = function(){...}
    
    jQuery.prototype = {
        each: function( callback, args ) {
            return jQuery.each( this, callback, args );
        }
    }
    查看全部
  • jQuery分离构造器

    - 不使用new 构造对象

    - 为了避免死循环,将jQuery原型上的init方法作为构造函数,init中的this完全引用不到jQuery的原型,所以这里通过new把init方法与ajQuery给分离成2个独立的构造器

    - 为什么init一定要放在jQuery原型上,单独写不好吗?

    查看全部
    0 采集 收起 来源:分离构造器

    2022-08-07

举报

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

微信扫码,参与3人拼团

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

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