init: function(selector) {
this.selector = selector;
return this;
},为什么要return this呢
this.selector = selector;
return this;
},为什么要return this呢
2016-08-09
下面的写法看似复杂了点,其实最直接的就是直接设置一个memory,每次执行完代码都自动更新memory的值,在add时候,直接执行fn(memory)就可以了。但是作者考虑到既然都是执行回调函数,我可以直接写一个_fire()方法,无论在 add中还是fire()中都可以使用。所以显得复杂了一些。如果单纯不考虑代码模块化,可以自己简单写一下,代码量缩小了一半多。当然,此处还是建议大家学习本课中提到的方法
2016-08-06
跟多个函数放到一个函数中一次执行有什么不同,不明白
__________________
到时是对的,但是在调用的时候,只用放一次,而且放到一个函数中这个过程是通过方法来添加的,而不是直接在代码中添加。所谓的“组件”的思想。而且,最重要的是,注意这句话:当一个对象的改变需要同时改变其它对象,并且它不知道具体有多少对象需要改变的时候,就应该考虑使用观察者模式。 如果一次把多个函数放到一个函数中,不仅仅可能造成这个函数过于庞大(比如要同时执行几十上百个函数),而且每次十分不灵巧,函数变得不够“单纯”,换句话说,太low了。。。
__________________
到时是对的,但是在调用的时候,只用放一次,而且放到一个函数中这个过程是通过方法来添加的,而不是直接在代码中添加。所谓的“组件”的思想。而且,最重要的是,注意这句话:当一个对象的改变需要同时改变其它对象,并且它不知道具体有多少对象需要改变的时候,就应该考虑使用观察者模式。 如果一次把多个函数放到一个函数中,不仅仅可能造成这个函数过于庞大(比如要同时执行几十上百个函数),而且每次十分不灵巧,函数变得不够“单纯”,换句话说,太low了。。。
2016-08-04
这里有个有意思的事情,$('#end').find('li').prevObject===$('#end')总是返回false,其实$('#end')===$('#end')也会返回false。这里是因为每一次使用$()就会调用new jQuery(),形成的即便传了相同的参数也不是同一个对象
2016-07-31
find pushStack两个函数对象连起来看才好理解。前一个 ret = this.pushStack(len > 1 ? jQuery.unique(ret) : ret);此处this指find前的jQuery对象,因为是this在调用pushStack函数,所以pushStack函数中的this也可以视为find前的jQuery对象,在pushStack中,把this(也即find前的jQuery对象)赋给ret.prevObject属性,此处两个确实是一个引用。
2016-07-31
对于程序员来说,有基本素养就是首先你会自学,第二你要明白任何知识的获得都是自己好奇心在驱动,而不是坐等从小到大的填鸭式教育。
2016-07-31