为了账号安全,请及时绑定邮箱和手机立即绑定
似懂非懂啊
第一章:1-5、1-6
第二章:2-1、2-2、2-3
第三章:3-1、3-2、3-5 callbacks解决的问题;3-4 callbacks的应用;剩下的把源码看懂
第一章:1-5、 1-6
第二章:2-1、2-2、2-3
第一章:1-5、 1-6
@liumengyang 一开始看的时候还在想 当 otpions存在时只取了optionsCache[options] , 可是在createOptions这个函数中只有optionsCache[options] = {} 没有对它进行操作啊。过了一会儿突然想起来在js里 对象赋值不是单纯的值赋值而是地址复制,所以其实 var object = optionsCache[options] = {}; 指向了同一个对象。顿时体会到了这行代码的精妙。
有两个点:
1、callbacks.fired() 的用途官方解释是“Determine if the callbacks have already been called at least once.”检测callbacks对象的回调列表是否被调用过至少一次。
2、callbacks.fireWith( [ context ][ ,args ] ) :访问给定的上下文和参数列表中的所有回调 -> 将回调中的this值指向传入的context参数。
了解了js的new机制,以及prototype,prototype.constructor相关知识就能明白这里。
课程说的太绕了,反而把人绕晕。况且有些理解,并不一定适合。
这个“课程”到这里,感觉组织的不是太好,有点蜻蜓点水走马观花的味道。
如果是技术类文章,这样还是不错。但作为“课程”,就不够了,课程目标和组织形式都很模糊。
使用了jQuery可以做到以下的几点:

1.简洁的API

2.优雅的链式调用

3.强大的选择器

4.便捷的操作

执行一个动画,需要设计的东西:

浏览器的兼容、各种属性的获取、逻辑流程、性能等等。
DOM对象容易产生内存泄漏是因为IE9之前的浏览器的DOM和BOM中的对象就是使用C++以COM对象的形式实现的,而又COM对象的垃圾回收机制采用的就是引用计数策略。所以只有在IE9之前关于DOM对象的循环引用才会产生内存泄漏,IE9以后的DOM不再是使用COM实现了,换成了真正的JavaScript对象了
更多关于内存泄漏的可以参考这篇博文:http://blog.csdn.net/ronghuimo/article/details/78872382
有小伙伴说
$.fn.init.prototype = $.fn; 是$.fn.init继承了$,其实是不对的,这里并没有继承,唯一作用就是让$.fn.init.prototype指向$.fn,这样一来init实例对象调用each方法会到$.fn.init.prototype上查找,也就是到$.fn上查找,由于$.fn上有each方法所以找到了,可以调用。如果说真要想$.fn.init继承$,则应该这么写:
$.fn.init.prototype.prototype = $.fn;或者$.fn.init.prototype = Object.create($.fn)
new操作主要分为四步:
(1)新创建一个空对象{}
(2)建立原型链接(新建立的这个空对象.__proto__指向构造函数.prototype)
(3)this绑定 (当前this指向那个新创建的对象)
(4)返回对象(不设置return的话默认返回当前新创建的对象,否则return设置什么则返回什么)
$(selector,context)用于返回一个jq类数组对象,这个对象如何产生然后返回呢?通过new的方式对init函数进行构造调用,这个init函数我们打算绑在哪呢?打算绑在jquery.prototype上,每次一长串jquery.prototype是不是觉得太长了?那我们用jquery.fn来简写吧。于是出现了
jquery.fn=jquery.prototype={
init:function(){}
};
可这样会导致重写原型对象,jquery.prototype的constructor指向意外丢失了,那我们重新给其设置一下
constructor指向jquery吧
get方法最好定义在aQuery.prototype上,而不是直接定义在给每个实例对象上,这样模仿jquery更像些
课程须知
源码的阅读不是一蹴而就的,需要大家有一定的功底,比如jQuery的基础运用以及API的熟悉度,除此之外要有牢固的javascript、DOM、CSS的基础功底,甚至还需要理解常见的设计模式、数据结构等等。当然大家也不要被这些给吓住了,理解,总是需要一种慢慢的学习过程。
老师告诉你能学到什么?
通过本课程的学习,您可以由浅入深地剖析jQuery库的设计与实现。 其中我们围绕的重心: 1、设计理念 2、结构组织 3、接口设计 4、模式运用 5、场景套用

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消