为了账号安全,请及时绑定邮箱和手机立即绑定
了解了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更像些
这章niubility,精巧
看蒙了,最后找到老师的博客,一下看明白了http://www.cnblogs.com/aaronjs/p/3278578.html#undefined

最新回答 / jixianceshi
自问自答:js语法的一种特殊写法,+运算符后面,会把字符串格式的i转换成数值类型。eg: "23" -> 23; "23fsf" -> NaN;
$.data(body1, 'age', '25');
$.data(body2, 'age', '28');
console.log($.data(body1, 'age'));//25
console.log($.data(body2, 'age'));//28
检查了$.cache,并没有“age”属性,说明在静态方法中并没有将$("body")作为dom对象处理,只是按照普通对象的处理方式,附加在jQuery.expando属性,侧面反映了jquery的dom缓存机制
之前的评论说错了,汗。。。老师没有举例为什么静态方法不会产生覆盖。PS:静态方法hasData并不能检测到实例方法.data()附加的数据。
“前面的第三小节留下了一个疑问:jQuery.data() 与 .data()为什么会有区别?”这句话所指区别在何处?jQuery.data() 与 .data()的值应该都会被覆盖掉吧。也许老师想说的是运行$("#id").data("xx","yy");$("#id").data("xx","zz");“yy”并不会覆盖“zz”,这是由于$.fn.init并不是单例模式的。
人走光了,占个坑。
占个坑。。
课程须知
源码的阅读不是一蹴而就的,需要大家有一定的功底,比如jQuery的基础运用以及API的熟悉度,除此之外要有牢固的javascript、DOM、CSS的基础功底,甚至还需要理解常见的设计模式、数据结构等等。当然大家也不要被这些给吓住了,理解,总是需要一种慢慢的学习过程。
老师告诉你能学到什么?
通过本课程的学习,您可以由浅入深地剖析jQuery库的设计与实现。 其中我们围绕的重心: 1、设计理念 2、结构组织 3、接口设计 4、模式运用 5、场景套用

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消