看蒙了,最后找到老师的博客,一下看明白了http://www.cnblogs.com/aaronjs/p/3278578.html#undefined
2017-12-12
$.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缓存机制
$.data(body2, 'age', '28');
console.log($.data(body1, 'age'));//25
console.log($.data(body2, 'age'));//28
检查了$.cache,并没有“age”属性,说明在静态方法中并没有将$("body")作为dom对象处理,只是按照普通对象的处理方式,附加在jQuery.expando属性,侧面反映了jquery的dom缓存机制
2017-12-07
“前面的第三小节留下了一个疑问:jQuery.data() 与 .data()为什么会有区别?”这句话所指区别在何处?jQuery.data() 与 .data()的值应该都会被覆盖掉吧。也许老师想说的是运行$("#id").data("xx","yy");$("#id").data("xx","zz");“yy”并不会覆盖“zz”,这是由于$.fn.init并不是单例模式的。
2017-12-07
deferred.promise()的作用是,在原来的deferred对象上返回另一个deferred对象,后者只开放与改变执行状态无关的方法(比如done()方法和fail()方法),屏蔽与改变执行状态有关的方法(比如resolve()方法和reject()方法),从而使得执行状态不能被改变。
意思是如果返回的是 return dtd,那么我想改变执行状态,可以这么做dtd.reject(),这样就改变了执行方法,但是如果 return dtd.promise(),由于dtd.promise()没有resolve,reject等方法,所以无法从外部改变执行状态。
意思是如果返回的是 return dtd,那么我想改变执行状态,可以这么做dtd.reject(),这样就改变了执行方法,但是如果 return dtd.promise(),由于dtd.promise()没有resolve,reject等方法,所以无法从外部改变执行状态。
2017-11-04
defer.promise(obj); 它的作用就是在wait对象上部署Deferred接口。正是因为有了这一行,后面才能直接在obj上面调用done()和fail()。
2017-11-04