日积跬步,apply/call/bind 自我实现 发表于 2019-08-10 | 分类于 前端 | 热度 ℃ 字数统计 1,310 | 阅读时长 6 call/apply/bind 日常编码中被开发者用来实现 “对象冒充”,也即 “显示绑定 this“。 面试题:“call/apply/bind源码实现”,事实上是对 JavaScript 基础知识的一个综合考核。 相关知识点: 作用域; this 指向; 函数柯里化; 原型与原型链; cal ... 阅读全文 »
JavaScript设计模式(九):模版方法模式 发表于 2019-07-23 | 分类于 前端 | 热度 ℃ 字数统计 483 | 阅读时长 2 模版方法模式:定义一个操作中算法的骨架(稳定),而将一些步骤延迟(变化)到子类。子类可(复用)其算法结构,也可重新定义该算法的特定步骤。 生活小栗子: 模式特点 抽象父类(封装子类算法框架,公共方法,执行顺序) 具体子类(继承父类算法结构,可重写父类方法) 抽象类不能被实例化,主要作用是为子类 ... 阅读全文 »
JavaScript设计模式(八):组合模式 发表于 2019-07-15 | 分类于 前端 | 热度 ℃ 字数统计 1,213 | 阅读时长 5 组合模式:又叫 “部分整体” 模式,将对象组合成树形结构,以表示 “部分-整体” 的层次结构。通过对象的多态性表现,使得用户对单个对象和组合对象的使用具有一致性。 生活小栗子:文件目录,DOM 文档树 模式特点 表示 “部分-整体” 的层次结构,生成 “树叶型” 结构; 一致操作性,树叶对象对 ... 阅读全文 »
JavaScript设计模式(七):命令模式 发表于 2019-07-14 | 分类于 前端 | 热度 ℃ 字数统计 1,200 | 阅读时长 4 命令模式:请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。 生活小栗子:客户下单,订单记录了客户购买的产品,仓库根据订单给客户备货。 模式特点命令模式由三种角色构成: 发布者 invoker(发出命令,调用命令对 ... 阅读全文 »
JavaScript设计模式(六):观察者模式与发布订阅模式 发表于 2019-07-10 | 分类于 前端 | 热度 ℃ 字数统计 2,011 | 阅读时长 8 观察者模式(Observer) 观察者模式:定义了对象间一种一对多的依赖关系,当目标对象 Subject 的状态发生改变时,所有依赖它的对象 Observer 都会得到通知。 简单点:女神有男朋友了,朋友圈晒个图,甜蜜宣言 “老娘成功脱单,希望你们欢喜”。各位潜藏备胎纷纷失恋,只能安慰自己你不是唯 ... 阅读全文 »
JavaScript设计模式(五):迭代器模式 发表于 2019-07-01 | 分类于 前端 | 热度 ℃ 字数统计 1,968 | 阅读时长 8 文章内容分两部分: 前半部分为 “迭代器模式” 概念; 后半部分为 ES6 中 Iterator (迭代器) 上半部分开始… 迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。 简单理解(白话理解):统一 “集合” 型数据结构的遍历接口,实现可循环 ... 阅读全文 »
JavaScript设计模式(四):适配器模式 发表于 2019-06-26 | 分类于 前端 | 热度 ℃ 字数统计 1,140 | 阅读时长 4 适配器模式:将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个接口(方法或属性),使得原本由于接口不兼容而不能一起工作的那些类(对象)可以正常协作。简单理解就是为兼容而生的 “转换器”。 对于强迫症患者,那么多形状各异的接口,对应着不同数据线。如果可以有一个转接口实现集合兼容,岂不美 ... 阅读全文 »
JavaScript设计模式(三):代理模式 发表于 2019-06-25 | 分类于 前端 | 热度 ℃ 字数统计 2,704 | 阅读时长 11 代理模式:为一个对象提供一个代用品或占位符,以便控制它的访问。 当我们不方便直接访问某个对象时,或不满足需求时,可考虑使用一个替身对象来控制该对象的访问。替身对象可对请求预先进行处理,再决定是否转交给本体对象。 生活小栗子: 代购; 明星经纪人; 和谐上网 经常 shopping 的同学, ... 阅读全文 »
JavaScript设计模式(二):策略模式 发表于 2019-06-24 | 分类于 前端 | 热度 ℃ 字数统计 1,311 | 阅读时长 5 策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换 生活小栗子:诸葛锦囊 诸葛给刘备的锦囊妙计,遇到任何困难都有应对计策。策略模式实现的也是类似的场景。 再来一栗:给喜欢的女生买冰淇淋,事先不了解其喜好,只能集齐各种味道,总会命种。就是比较 “费钱”,这也是策略模式的缺点 ... 阅读全文 »
JavaScript设计模式(一):单例模式 发表于 2019-06-20 | 分类于 前端 | 热度 ℃ 字数统计 1,643 | 阅读时长 6 单例模式:限制类实例化次数只能一次,一个类只有一个实例,并提供一个访问它的全局访问点。 单例模式是创建型设计模式的一种。针对全局仅需一个对象的场景,如线程池、全局缓存、window 对象等。 模式特点 类只有一个实例 全局可访问该实例 自行实例化(主动实例化) 可推迟初始化,即延迟执行(与静态 ... 阅读全文 »