美文网首页
前端常见的设计模式

前端常见的设计模式

作者: 曾祥辉 | 来源:发表于2017-10-30 22:00 被阅读0次

构造函数模式

function Car(speed) {
  this.speed = speed
}
Car.prototype.accelerate = function () {
  return this.speed += 1
}
let run = new Car(0)

混合模式(将父元素的原型链赋值给空对象F,再将空对象F赋值给子元素的原型链来实现继承同时不覆盖子元素的原型链)

let Qq = function (user, password) {
  this.user = user
  this.password = password
}
Qq.prototype.gameId = function () {
  console.log(this.user)
}
let Lol = function (user, password, telphone) {
  Qq.call(this.user, password)
  this.telphone = telphone
}
function mix(parentObj) {
  function F() { }
  F.prototype = parentObj;
  return new F()
};
Lol.prototype = min(Qq.prototype)
Lol.prototype.login = function () {
  console.log('login')
}

工厂模式(每次调用函数都会返回不同的局部变量)

function shop(name) {
  let goods = {
    name: name || 'empty'
  };
  goods.price = function () {
    console.log('the ' + this.name + ' is free')
  }
  return goods
}
let g1 = shop('candy')
let g2 = shop('suger')

单例模式(调用第一次初始化返回值,以后再调用返回值不变)

let Single = (function () {
  let dream
  function init(who) {
    return {
      lover: who
    }
  }
  return {
    createLover: function (who) {
      if (!dream) {
        dream = init(who)
      }
      return dream
    }
  }
})()
Single.createLover('null')
Single.createLover('goddess')

发布订阅模式(自定义组件)

let Event = (function () {
  let evts = {};
  function on(evt, handler) {
    evts[evt] = evts[evt] || []
    evts[evt].push({
      handler: handler
    })
  }
  function fire(evt, args) {
    if (!evts[evt]) {
      return
    }
    for (let i = 0; i < evts[evt].length; i++) {
      evts[evt][i].handler(args)
    }
  }
  function off(evt) {
    delete evts[evt]
  }
  return {
    on: on,
    fire: fire,
    off: off
  }
})()
Event.on('change', function (val) {
  console.log('change...  now val is ' + val);
});
Event.fire('change', 'newchange');
Event.off('changer');

相关文章

  • 前端常见的9种设计模式

    本文目录: 1.概念 2.设计原则 3.设计模式的类型 前端常见设计模式1:外观模式(Facade Pattern...

  • 前端常见设计模式

    构造函数模式 模块模式 工厂模式 混合模式 单例模式 订阅发布模式

  • 前端常见设计模式

    1.写出 构造函数模式、混合模式、模块模式、工厂模式、单例模式、发布订阅模式的范例。 构造函数模式function...

  • 前端常见设计模式

    1. 写出 构造函数模式、混合模式、模块模式、工厂模式、单例模式、发布订阅模式的范例。 构造函数模式 混合模式 模...

  • 前端常见的设计模式

    构造函数模式 混合模式(将父元素的原型链赋值给空对象F,再将空对象F赋值给子元素的原型链来实现继承同时不覆盖子元素...

  • 前端常见的设计模式

    工厂模式 将方法属性单独定义,避免重复创建,将公共的属性定义到一个函数中,可以重复使用。 构造函数模式 注意:构造...

  • 常见的前端设计模式

    模块模式: 在立即执行函数表达式中定义的变量和方法在外界是访问不到的,只能通过其向外部提供的接口,"有限制"地访问...

  • 前端常用设计模式

    前端常见的设计模式主要有以下几种: 单例模式 工厂模式 策略模式 代理模式 观察者模式 模块模式 构造函数模式 混...

  • 1-观察者模式与发布订阅“模式”

    一、观察者模式 观察者模式在前端工程中是很常见的设计模式,因为前端交互中充斥着大量多控件联动的交互,当参与联动的组...

  • 好程序员web前端培训分享JavaScript中常见的反模式

    好程序员web前端培训分享JavaScript中常见的反模式,前言:反模式是指对反复出现的设计问题的常见的无力而低...

网友评论

      本文标题:前端常见的设计模式

      本文链接:https://www.haomeiwen.com/subject/jiompxtx.html