javascript模式读书笔记
爱德酱
UESTC CS研究生
展开
-
Javascript实现函数的curry化
首先介绍下curry的概念:使函数理解并处理部分应用的过程就叫做CURRY化:例如,我想将add(x,y)方法转换成一个可以分成两部输入参数并正确计算结果的函数,我们就可以用到CURRY化的概念,javascript是一门动态性很强的语言,我们很容易实现这个效果:代码如下:function add(x,y){ var oldx = x,oldy = y; if(typeof oldy原创 2017-05-05 17:20:15 · 1630 阅读 · 0 评论 -
JavaScript设计模式之观察者模式
观察者模式(订阅发布模式)该模式广泛应用于客户端程序//通用发布者对象 var publisher = { subsribers: { any: []//通用订阅者方法 }, subscribe: function (fn,type) { type = type || 'any'; if(!this.subscribers[type]原创 2017-05-22 17:25:05 · 318 阅读 · 0 评论 -
JavaScript设计模式之代理模式
代理模式中介模式合并多个复杂业务请求,减轻web服务器压力页面框架<p><span id='toggle-all'>Toggle Checked</span></p> <ol> <li> <input type="checkbox" checked> <a href="http://new.music.yahoo.com/videos/--2158073"></a> </li原创 2017-05-22 17:21:12 · 283 阅读 · 0 评论 -
JavaScript设计模式之外观模式
外观模式外观模式包装重复方法,浏览器脚本处理Myevent = { ... Stop:function (e) { if(typeof stopPropagation === 'function'){ e.stopPropagation(); } if(typeof preventDefault === 'fun原创 2017-05-22 17:19:46 · 318 阅读 · 0 评论 -
JavaScript设计模式之策略模式
策略模式策略模式支持运行时选择算法,客户端只需要一个接口,可以根据不同的数据和业务需求,接口内部会选择不同的算法去适应。validator = { types:{},//所有检查方法 messages:[],//错误信息数组 config:{},//需要验证的方法集 validate:function (data) { //验证方法 var I,原创 2017-05-22 17:18:45 · 276 阅读 · 0 评论 -
javascript设计模式之单体模式
javascript设计模式之单体模式单体模式属于js设计模式中的创建对象型模式,它保证一个特定类只会有一个实例当我们使用对象字面量的语法创建对象时,自然是一个单体;当我们使用构造器创建对象时,我们通常有两种方法去实现单体模式第一种是使用全局变量做当前对象的保存第二种是使用构造器的静态属性,代码如下:Function Universe () { if(typeof Universe.in原创 2017-05-17 17:18:54 · 350 阅读 · 0 评论 -
javascript设计模式之装饰器模式
javascript设计模式之装饰器模式装饰器模式是一种结构型模式有两种常见的实现方法第一种是利用原始对象原型的decorate方法,实现装饰对象对上一个对象的继承和方法重载。最终的对象是经过一系列装饰的装饰对象。代码如下:Function Sale (price) { this.price = price || 100; }Sale.decorators = {};Sale.decorat原创 2017-05-17 17:07:19 · 406 阅读 · 0 评论 -
javascript设计模式之迭代器模式
javascript的迭代器模式实现了一种类似链表的迭代器数据结构和相关查找函数。代码如下:Var agg = (function () { var index = 0, arr = [1,2,3], length = arr.length; return { next: function () {原创 2017-05-17 17:12:16 · 239 阅读 · 0 评论 -
javascript对象创建模式
命名空间模式使用一个全局的对象变量来作为所有模块的顶级父属性,所有的子模块都他的属性。var MYAPP = MYAPP || {}; var MYAPP.modules = {}; MYAPP.modules.dom = {}; MYAPP.modules.event = {};我们也可以使用通用的命名方法去执行变量的命名初始化;var ajax = namespace('MYAPP.原创 2017-05-08 16:44:58 · 304 阅读 · 0 评论 -
JavaScript设计模式之中介模式
中介者模式该模式会缓解对象之间的耦合度,将紧耦合转换成松耦合代码示例,实现一个键盘游戏,有两个玩家。规定一个人按‘1’,一个人按‘0’。//玩家对象 function Player (name) { this.points = 0; this.name = name; } Player.prototype.play = function () { this.points +=原创 2017-05-22 17:23:03 · 295 阅读 · 0 评论