- 博客(6)
- 收藏
- 关注
原创 js设计模式-装饰器模式
装饰器模式 在不改变其原有的结构和功能为对象添加新功能,装饰比继承更加灵活。 就像你有一把狙击枪它需要消音的功能,我们就可以装上一个消音器。要一个四倍镜就可以 装上四倍镜,然后是握把,枪架等等。可以把消音器、四倍镜、握把、枪架…相当于装饰器概念。 // 狙击枪 class SniperRifle { // 枪配置 configuration() { return `狙击枪体` } // 枪的综合战力 fightingCapacity() {
2021-03-05 15:46:40 148 1
原创 js设计模式-单例模式
js设计模式-单例模式 什么是单例模式?简单的来说就是这个类的实例就只有一个,在简单点说的话: 假设 有一个类叫 CreateClass 当每次使用new操作符 去new它(CreateClass)时得到实例都是同一个实例; function Single (name){ this.name = name; }; Single.prototype.getName = function(){ console.log(this.name) }; Single.getI
2021-03-01 19:41:52 188 2
原创 js设计模式-工厂模式
js设模式-工厂模式 1.简单工厂模式 假设我要批量生产车。 第一我们会想直接创建一个构造函数,然后重复new来批量生产。 class CreateCar{ constructor(brand){ this.brand = brand }, run(){ console.log('跑'); } } let car = new CreateCar('宝马'); 这样我就可以批量生产车了,但是如果我想生产一部其他功能的车怎么办 CreateCar这个函数就无法生产了 这是我就可以开个工厂用
2021-02-25 23:45:42 174
原创 高阶函数应用 —— 柯里化与反柯里化
高阶函数 高阶函数叫法:切片编程 AOP 高阶函数满足条件: 1.一个函数的参数是函数。 2.一个函数的返回值是一个函数。 只要满足以上两点的其中一点就属于高阶函数。它可以满足我们在一个函数原有的逻辑上增加一些功能。 /* 需求是想在调用say之前做一些逻辑 */ let say = (....
2020-03-19 23:12:19 128
原创 观察者模式
观察者模式有两个主要的特点 1、观察者通过继承基类将自己注册到目标对象上(被观察者) 2、目标对象(被观察者)提供了维护观察者的一系列方法(增、删、遍历执行) // 观察者模式 // 观察者 class Observer{ constructor(name){ this.name = name; }; // 被观察状态改变执行函...
2020-03-13 16:31:37 190
原创 发布-订阅模式
发布订阅模式 发布-订阅模式 可以说是学前端常见的设计模式了。 首先来个简单的发布-订阅模式 // 发布-订阅模式1.0 let e = { _callbacks: [], // 订阅 on(callback){ // 添加到订阅列表 this._callbacks.push(callback) }, ...
2020-03-13 15:22:59 109
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人