• 原生js《发布订阅》功能


    原生js的“eventemitter 发布订阅”其实跟vue的“bus 中央事件总线”是同一种东西,而我只是用js实现一版出来而已

    组件代码:

    (function () {
        var msgService = function msgService() {};
        msgService.prototype.on = function (name, callback) { // 接收
            var callbacks = this[name];
            if (callbacks) {
                callbacks.push(callback);
            } else {
                this[name] = [callback];
            }
        };
        msgService.prototype.dispatch = function (name, option) { // 广播
            let callbacks = this[name];
            callbacks && callbacks.forEach((callback) => callback(option));
        };
        window.msgService = msgService;
    })()

    调用代码:

    var MsgService = new msgService();
    MsgService.on("test1", function (data) {
         // 接收函数被触发后做点事情
      console.log("test1被调用:", data);
    });
    MsgService.dispatch("test1", "我是传参"); // 可重复调用多次
    MsgService.dispatch("test1", "我是传参"); // 可重复调用多次
    MsgService.dispatch("test1", "我是传参"); // 可重复调用多次

    MsgService.on("test2", function (data) { // 接收函数被触发后做点事情 console.log("test2被调用:", data); }); MsgService.dispatch("test2", "我是传参"); // 可重复调用多次 MsgService.dispatch("test2", "我是传参"); // 可重复调用多次 MsgService.dispatch("test2", "我是传参"); // 可重复调用多次
  • 相关阅读:
    访问修饰符的权限。
    字符编码
    3/11 作业
    3/10 作业
    作业 3/9
    流程控制之for循环
    Exception in createBlockOutputStream
    windows上传文件到 linux的hdfs
    win10 配置 hadoop-2.7.2
    hadoop 源码编译
  • 原文地址:https://www.cnblogs.com/konghaowei/p/14036072.html
Copyright © 2020-2023  润新知