随笔分类 - js设计模式
摘要:桥接模式 有一个需求,要对一个组件实现鼠标滑过特效,但组件内部有很多元素,每个元素滑过的特效可能有一定的共同点,此时我们可以将共同点抽象出来 例: function changeColor(dom, color, bg){ dom.style.color = color dom.style.back
阅读全文
摘要:装饰者模式 当有很多元素,原有功能不能满足需求,需要添砖加瓦,可以采用装饰者模式 比如修改一个表单内所有input框的点击事件,为了不破坏原有onclick事件,同时添加新的onclick事件,需要先找到原来的功能部分,然后针对性的去修改或添加事件,为了避免麻烦,可以写一个装饰者去简化 const
阅读全文
摘要:如下方法,由于参数太多,导致使用很麻烦,顺序也难以记忆 function doSomeThing(name, title, age, color, size, prize){} 所以我们可以采用对象的方式配置参数 /* name: name title: title age: age color:
阅读全文
摘要:创建无法修改的静态变量 通过暴露一个取值器让外界可以访问到,但无法修改 const Conf = (function () { // 私有变量 const conf= { // 静态变量尽量大写 "MAX_NUM": 100, "MIN_NUM": 1, "COUNT": 1000 } return
阅读全文
摘要:建造者模式 建造者模式主要是将构建层与表示层分离,一种模块化的思想,使单个模块可以高效灵活的复用,但这种拆分同样增加了一定复杂度 实例:招聘简历 创建一个人类的类 const Human = function(param){ this.skill = param && param.skill ||
阅读全文
摘要:简单工厂模式,又叫静态工厂模式,由一个工厂创建某一种对象的实例,主要用来创建同一种对象 对不同类的实例化 有一个需求,要创建登录提示框,登录的确认框,登录成功的提示框,因为逻辑不完全相同,所以我们写成三个类 const LoginAlter = function (text) { this.cont
阅读全文
摘要:JavaScript中是可以实现多态的 很好理解,直接上代码 function Add() { let args = arguments let len = args.length switch(len){ case 0: return 10 case 1: return 10 + args[0]
阅读全文
摘要:类式继承 // 声明父类 function SuperClass() { this.superValue = true } // 为父类添加共有方法 SuperClass.prototype.getSuperValue = function () { return this.superValue }
阅读全文
摘要:我们在创建实例对象是,若忘了new const Book1 = function (title, time, type) { this.title = title this.time = time this.type = type } const book1 = Book1("JavaScript"
阅读全文
摘要:闭包的主要作用就是构建一个单独的作用域,里面的一些变量不会污染全局,又可以满足一些必要操作 比如bookNum,写在外部会污染全局,写在_book里函数中, 静态使用一次又会被销毁, 实例又无法从外部访问 const Book = (function () { // 私有变量 let bookNum
阅读全文
摘要:为了方便使用,防止污染全局变量,可以把一系列功能封装在一个类中使用 const CheckObj1 = function(){ this.checkName = function(){ console.log("checkName") } this.checkEmail = function(){
阅读全文