自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除