JS的四种设计模式

1)发布者订阅模式

就例如我们关注了某个公众号,然后他对应的有新的消息就会给我们推送。 代码实现逻辑是用数组存贮订阅者,发布者回调函数里面通知的方式是遍历订阅者数组,并将发布者内容传入订阅者数组

//发布者与订阅模式:
var shoeObj = {};   // 定义发布者
shoeObj.list = [];  // 缓存列表 存放订阅者回调函数

// 增加订阅者:
shoeObj.listen = function(fn) {
    shoeObj.list.push(fn); // 订阅消息添加到缓存列表
}

// 发布消息:
shoeObj.trigger = function() {
        for (var i = 0, fn; fn = this.list[i++];) {
            fn.apply(this, arguments);//第一个参数只是改变fn的this,
        }
    }
 // 小红订阅如下消息:
shoeObj.listen(function(color, size) {
    console.log("颜色是:" + color);
    console.log("尺码是:" + size);
});

// 小花订阅如下消息:
shoeObj.listen(function(color, size) {
    console.log("再次打印颜色是:" + color);
    console.log("再次打印尺码是:" + size);
});
shoeObj.trigger("红色", 40);
shoeObj.trigger("黑色", 42);  

2)工厂模式

简单的工厂模式可以理解为解决多个相似的问题。

3)单例模式

只能被实例化(构造函数给实例添加属性与方法)一次。

4)沙箱模式

将一些函数放到自执行函数里面,但要用闭包暴露接口,用变量接收暴露的接口,再调用里面的值,否则无法使用里面的值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值