前端设计模式

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

构造函数模式

var Fn = function(){
    this.a = 1;
    this.b = 2
}
Fn.prototype.init = function(){
    console.log("ok")
}
var a = new Fn;
console.log(a.init());// "ok"

混合模式

var Fn = function(){
    this.a = 1;
    this.b = 2;
    this.init()
}
Fn.prototype.init = function(){
    console.log("ok")
}
var Son = function(){}
Son.prototype=Object.creat(Fn.prototype);
Son.prototype.construct = Son

模块模式

var module = (function(){
    var name = "xiaowang"
    var Fn = function(){
    this.a = 1;
    this.b = 2;
    this.init()
    }
    Fn.prototype.init = function(){
    console.log("ok")
    }
    return {
        init: Fn;
        name: name
    }
})()

工厂模式

function create( opts ){
    var person ={
         name: opts.name || 'hunger',
    };
    person.sayName: function(){
        console.log(this.name)
    }
    return person
}
var p1 = create( { name: "xiaoming" } );
var p1 = create( { name: "xiaowang" } );

单例模式

var people = (function () {
    var instance;
    function init() {
      return {  
      };
  }
    return {
      creat: function () {
        if(!instance){
          instance = init()
        }
        return instance;
      }
    };
})()

发布订阅模式

  var event = {};
  function on( evt, handle){
    evevt[evt] = evevt[evt] || [];
    evevt[evt].push({
      handler: handle
    })
  }
  function fire( evt, args){
    if( !evevt[evt] ){
      return
    }
    for( var i = 0; i<evevt[evt].length; i++){
      evevt[evt][i].handler(args)
    }
  }
  function off(n){
    delete enent[n];
  }
  return {
    on: on,
    fire: fire,
    off: off
  }
})()
EventCenter.on( "change", function(val){
  console.log("change...  now val is"+val)
});
EventCenter.fire("change","jirengu");
EventCenter.off("change");```
第二题参上
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,142评论 1 10
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,963评论 2 17
  • 1. 写出 构造函数模式、混合模式、模块模式、工厂模式、单例模式、发布订阅模式的范例。 模块模式var Perso...
    _李祺阅读 279评论 0 0
  • 一、构造函数模式、混合模式、模块模式、工厂模式、单例模式、发布订阅模式的范例 单例模式单例就是保证一个类只有一个实...
    任少鹏阅读 408评论 0 0
  • 写出 构造函数模式、混合模式、模块模式、工厂模式、单例模式、发布订阅模式的范例。 使用发布订阅模式写一个事件管理器...
    coolheadedY阅读 368评论 0 0