JavaScript设计模式与开发实践的笔记(16)

>我来写笔记

按有用程度 按页码先后 最新笔记

  • 橡树

    橡树

    最后看看测试结果: ... // 分别输出: 发射普通子弹、发射导弹、发射原子弹 这个应该是通过 plane.fire() 触发的,依次输出的,而不是分别输出的。相当于这个飞机发射出三种子弹,而不是每种飞机发出一种子弹,感觉这个例子不是特别好。

    2017-08-11 15:57

  • 橡树

    橡树

    感觉这个模式更像是一个超类的实现,就是把多个类的公有属性或者方法提取到一个更抽象的父类层面。

    2017-08-10 16:51

  • 橡树

    橡树

    设计模式的总是把不变的事物和变化的事物分离开,... 这句话是所有设计模式的主题,都在围绕这个主题设计代码结构

    2017-08-10 09:53

  • 橡树

    橡树

    原文中的迭代器如下: var iteratorUploadObj = function() { for (var i = 0, fn; fn = arguments[i++]; ) { var uploadObj = fn(); if( uploadObj !== false ){ return uploadObj; } }; }; 其实可以用下面这种方式也不错,就是把所有要迭代的函数放入一个数组中,然后迭代这个数组。 const funs = [getActiveUploadObj, getFlashUploadObj, getFormUploadObj]; // 其中 funs 是一个数组,这个数组的每个元素就是要迭代执行的...

    2017-08-09 11:43

  • 橡树

    橡树

    4.3 用代理实现单例模式 接下来引入代理类 proxySingletonCreateDiv: ... var a = new proxySingletonCreateDiv('sven1'); var b = new proxySingletonCreateDiv('sven2'); 这段代码中其实 new 也是没有必要的吧?直接 proxySingletonCreateDiv('sven1'), proxySingletonCreateDiv('sven2') 就可以吧?

    2017-08-07 14:17

  • 橡树

    橡树

    4.1 实现单例模式 第一段代码 var Singleton = function(name) { this.name = name; this.instance = null; } 这个 this.instance = null 有什么用吗?

    2017-08-07 11:25

  • 星堡a

    星堡a (豆瓣越来越年轻了)

    实际上,每当我们看到一大片的 if 或者 swtich-case 语句时,第一时间就应该考虑,能 否利用对象的多态性来重构它们。

    2017-07-24 10:27

  • 星堡a

    星堡a (豆瓣越来越年轻了)

    uncurring的目的 那么有没有办法把泛化 this 的过程提取出来呢?本小节讲述的 uncurrying 就是用来解决这 个问题的。 为什么要把this提取出来?还是与call apply的目的相同吧。 方法中用到 this 的地方就不再局限于原来规定的对象,而是加以泛化并得到更广的适用性。 Function.prototype.uncurrying = function() { var self = this; return function() { var obj = Array.prototype.shift.call(arguments); return self.apply(ob...

    2017-07-20 16:31

  • 星堡a

    星堡a (豆瓣越来越年轻了)

    分时函数,感觉就是js里面的自动分页。没有仔细看代码实现方式 var timeChunk = function(ary, fn, count) { var obj, t; var len = ary.length; var start = function() { for (var i = 0; i < Math.min(count || 1, ary.length); i++) { var obj = ary.shift(); fn(obj); } }; return function() { setInterval(function() { if (ary.length === 0) { // 如果全部节点都已经被创建好 return clearInterval(t); } start(); ...

    2017-07-20 16:03

  • 胡椒

    胡椒 (Nothing last forever)

    书里的第8章名为发布—订阅模式,但是直到了 8.8 全局的发布—订阅对象,前后的 code example 实际上是两种不同的对于观察者模式的实现: 8.8 之前是类似 Event Emit 的实现; 而 8.8 之后,从先订阅后发布的离线事件,到作为全局变量存在 global 对象,则是类似 Global Boardcast 的 Pub/Sub 的实现。 1. 类似 Event Emit 的实现。 这种实现方式尤其醒目的一点是,会有一个 Events 对象存在,而之后的每个对象都是从这个对象...

    2016-06-06 17:33

<前页 1 2 后页>

笔记是你写在书页留白边上的内容;是你阅读中的批注、摘抄及随感。

笔记必须是自己所写,不欢迎转载。摘抄原文的部分应该进行特殊标明。

JavaScript设计模式与开发实践

>JavaScript设计模式与开发实践