- 博客(7)
- 收藏
- 关注
原创 六、命令模式
饭店吃饭时,客人点完菜后,订单会交给后厨出菜。 订单就是命令对象,被四处传递。 客人不需要认识厨师,等于命令调用者和命令接受者解耦。 <button id="btn1">click 1</button> <button id="btn2">click 2</button> <button id="btn3">click 3</button> var btn1 = document.getElementById('btn1')
2021-10-29 15:04:26 94
原创 五、发布——订阅模式
全局的发布订阅 var events = (function () { var clients = {}; var listen = function (key, fn) { if (!clients[key]) { clients[key] = []; } clients[key].push(fn); }; var trigger = function () { var key = Array.prototype.shift.call(
2021-10-29 10:09:53 78
原创 四、迭代器模式
手写迭代器 内部迭代器 var each = function (ary, fn) { for (var i = 0; i < ary.length; i++) { fn.call(ary, ary[i], i); } }; var ary = ['a', 'b', 'c', 'd', 'e', 'f']; var fn = function (item, index) { console.log(item, index); }; each(ary, f...
2021-10-28 14:41:00 64
原创 三、代理模式
小明要送花给小红,怕小红拒绝,小明把花交给小灯泡,小灯泡在小红心情好的时候将花送给小红,小灯泡就是代理。 保护代理 送花的人很多,小灯泡帮助小红过滤掉一些人,比如没有宝马的、年龄过大的。 小红可以保持女神形象不会直接拒绝任何人,小灯泡唱黑脸拒绝小红看不上的人。 虚拟代理 假设现实中的花价格不菲,导致在程序世界里,new Flower也是一个代价昂贵的操作。 那么我们可以把new Flower的操作交给代理小灯泡去执行,小灯泡会选择在小红心情好时再执行new Flower。 这是..
2021-10-28 11:17:05 97
原创 二、策略模式
由策略类和环境类组成。 策略类 封装了具体的算法,负责具体的计算过程 环境类Context 接受客户的请求,将请求委托给策略类 基于类的策略模式 Java like code // 策略类 var PerformanceS = function () {}; PerformanceS.prototype.calculate = function (salary) { return salary * 3; }; PerformanceA = function ...
2021-10-28 11:13:04 58
原创 一、单例模式
由普通类和代理类两个部分组成 单例模式 普通类 CreateDiv,创建div并添加到body中 var CreateDiv = function (html) { this.html = html; this.init(); }; CreateDiv.prototype.init = function () { var div = document.createElement('div'); div.innerHTML = this.html; document.bo...
2021-10-28 11:08:42 78
原创 JavaScript防抖和节流
防抖 只第一次执行,后面点击都不执行 <input type="text" /> <button type="submit">click</button> <script src="./index.js"></script> <script> var btn = document.getElementsByTagName('button')[0]; var input = document.getElementsByT
2021-10-28 09:36:04 47
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人