了解了js的new机制,以及prototype,prototype.constructor相关知识就能明白这里。
课程说的太绕了,反而把人绕晕。况且有些理解,并不一定适合。
课程说的太绕了,反而把人绕晕。况且有些理解,并不一定适合。
2017-12-27
使用了jQuery可以做到以下的几点:
1.简洁的API
2.优雅的链式调用
3.强大的选择器
4.便捷的操作
执行一个动画,需要设计的东西:
浏览器的兼容、各种属性的获取、逻辑流程、性能等等。
1.简洁的API
2.优雅的链式调用
3.强大的选择器
4.便捷的操作
执行一个动画,需要设计的东西:
浏览器的兼容、各种属性的获取、逻辑流程、性能等等。
2017-12-25
有小伙伴说
$.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)
$.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)
2017-12-22
$(selector,context)用于返回一个jq类数组对象,这个对象如何产生然后返回呢?通过new的方式对init函数进行构造调用,这个init函数我们打算绑在哪呢?打算绑在jquery.prototype上,每次一长串jquery.prototype是不是觉得太长了?那我们用jquery.fn来简写吧。于是出现了
jquery.fn=jquery.prototype={
init:function(){}
};
可这样会导致重写原型对象,jquery.prototype的constructor指向意外丢失了,那我们重新给其设置一下
constructor指向jquery吧
jquery.fn=jquery.prototype={
init:function(){}
};
可这样会导致重写原型对象,jquery.prototype的constructor指向意外丢失了,那我们重新给其设置一下
constructor指向jquery吧
get方法最好定义在aQuery.prototype上,而不是直接定义在给每个实例对象上,这样模仿jquery更像些
2017-12-21
看蒙了,最后找到老师的博客,一下看明白了http://www.cnblogs.com/aaronjs/p/3278578.html#undefined
2017-12-12
最新回答 / jixianceshi
自问自答:js语法的一种特殊写法,+运算符后面,会把字符串格式的i转换成数值类型。eg: "23" -> 23; "23fsf" -> NaN;
2017-12-08
$.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