一个简单的javascript模块间事件通信范例

现在项目开发中很多采用了模块化方式开发,很多时候多个模块中间需要通过事件方式进行交互,这里给出一个简单的示例代码,希望对大家有所帮助。

window.Core = window.Core || {};  

Core.listenData = {};  

//事件监听  

Core.listen =function (args, handle) {  

//args:监听事件的名称,可为数组形式,handle:监听到事件后的处理函数  

//同一个页面上可能存在多个同样的部件,他们所监听的可能是同一个事件  

if (typeof (args) == 'string') {  

        args = [args];  

    }  

for (var i = 0; i < args.length; i++) {  

if (Core.listenData.hasOwnProperty([args[i]])) {  

            Core.listenData[args[i]].push(handle);  

}else {  

            Core.listenData[args[i]] = [];  

            Core.listenData[args[i]].push(handle);  

        }  

    }  

};  


//事件通知  

Core.notify =function (handleName, data) {  

if (Core.listenData.hasOwnProperty([handleName])) {  

var handleList = Core.listenData[handleName];  

for (var i = 0; i < handleList.length; i++) {  

            handleList[i](handleName, data);  

        }  

    }  

};  

传送门

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,125评论 0 2
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,420评论 0 13
  • 作为战斗在业务一线的前端,要想少加班,就要想办法提高工作效率。这里提一个小点,我们在业务开发过程中,经常会重复用到...
    Calvin李阅读 576评论 0 1
  • " 躺在你学校的操场看星空,教室里的灯还亮着你没走。 " 39岁的杰伦在生日这天推出了最新单曲《等你下课》,歌词里...
    霷揚阅读 409评论 0 1
  • 让声音拥有感情的3个步骤。 声音没有感情是很多人的“通病“ 听上去总给人感觉呆板、生硬、没有起伏 上节课我们说了“...
    飞翔_9215阅读 187评论 0 0

友情链接更多精彩内容