为了账号安全,请及时绑定邮箱和手机立即绑定
这章niubility,精巧
看蒙了,最后找到老师的博客,一下看明白了http://www.cnblogs.com/aaronjs/p/3278578.html#undefined
$.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并不是单例模式的。
人走光了,占个坑。
占个坑。。
看这种源码并不是要求自己全部看懂它,而是让自己能够明白这种设计思想,学习一些高级写法,在生产环境下代码应该怎么写才规范
分析的太好了
绝对干货,一点也不邋遢,如同口嚼奶片,满嘴醇香
全程一脸懵逼
老师,你的普通话好感人啊!
如此牛B 一行代码 够研究半天的
deferred.promise()的作用是,在原来的deferred对象上返回另一个deferred对象,后者只开放与改变执行状态无关的方法(比如done()方法和fail()方法),屏蔽与改变执行状态有关的方法(比如resolve()方法和reject()方法),从而使得执行状态不能被改变。
意思是如果返回的是 return dtd,那么我想改变执行状态,可以这么做dtd.reject(),这样就改变了执行方法,但是如果 return dtd.promise(),由于dtd.promise()没有resolve,reject等方法,所以无法从外部改变执行状态。
defer.promise(obj); 它的作用就是在wait对象上部署Deferred接口。正是因为有了这一行,后面才能直接在obj上面调用done()和fail()。
课程须知
源码的阅读不是一蹴而就的,需要大家有一定的功底,比如jQuery的基础运用以及API的熟悉度,除此之外要有牢固的javascript、DOM、CSS的基础功底,甚至还需要理解常见的设计模式、数据结构等等。当然大家也不要被这些给吓住了,理解,总是需要一种慢慢的学习过程。
老师告诉你能学到什么?
通过本课程的学习,您可以由浅入深地剖析jQuery库的设计与实现。 其中我们围绕的重心: 1、设计理念 2、结构组织 3、接口设计 4、模式运用 5、场景套用

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消