最赞回答 / 慕慕7300641
each: function(obj, callback, args) { var value, i = 0, length = obj.length, isArray = isArraylike(obj); // 判断是不是数组 // 传了第三个参数 if (args) { if (isArray) { for (; i < length; i++) { // 相当于: // args = [a...
2016-08-12
最赞回答 / Zickson
为了链式调用方便。比如一个对象:A的某个方法函数执行结果返回对象A自身时(this),可以再次调用A对象的其他方法;其他方法如果返回值依然为自身,还可以继续调用A的方法...例:shape.set(x).set(y).set(z).set(type)
2016-08-11
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