一个简单的前端事件框架

参考网上的一个资料,做下备注。

<html>
    <head>
        <title>js event demo</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0" max-age="0">
    </head>
    <body>
        <h4>js event demo</h4>
    </body>
    <script type="text/javascript">

        //自定义事件
        function EventEmitter() {
            this.events = {};
        }   

        //绑定事件函数
        EventEmitter.prototype.on = function(ename, call){
            this.events[ename] = this.events[ename] || [];
            this.events[ename].push(call);
        }

        EventEmitter.prototype.emit = function(ename, _){

            var events = this.events[ename];
            //取参数,剔除参数ename
            var args   = Array.prototype.slice.call(arguments, 1);

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

                //调用绑定的事件函数
                events[i].apply(null, args);
            }
        }

        function app(){

            calltime = 0;

            //同一个事件绑定了两个处理函数
            this.on(‘start‘,function(user, date){
                calltime += 1;
                console.log(‘event start: ‘ + user + " " + date + " " + calltime);
            });

            this.on(‘start‘, function(user, date){
                calltime += 1;
                console.log(‘event start: ‘ + user + " " + date + " " + calltime);
            })
        }

        app.prototype = new EventEmitter();

        var a = new app();

        //触发事件
        a.emit(‘start‘, ‘fred‘, new Date());

    </script>

</html>

原文地址:https://www.cnblogs.com/Fredric-2013/p/8399056.html

时间: 2024-10-12 06:45:24

一个简单的前端事件框架的相关文章

从零构建一个简单的 Python Web框架

为什么你想要自己构建一个 web 框架呢?我想,原因有以下几点: 你有一个新奇的想法,觉得将会取代其他的框架 你想要获得一些名气 你遇到的问题很独特,以至于现有的框架不太合适 你对 web 框架是如何工作的很感兴趣,因为你想要成为一位更好的 web 开发者. 接下来的笔墨将着重于最后一点.这篇文章旨在通过对设计和实现过程一步一步的阐述告诉读者,我在完成一个小型的服务器和框架之后学到了什么.你可以在这个代码仓库中找到这个项目的完整代码. 我希望这篇文章可以鼓励更多的人来尝试,因为这确实很有趣.它让

简单的前端校验框架实现

前端表单在提交前总是要进行校验的,而这些工作是繁琐的,所以这儿写了一个简单的校验框架,代码实现如下: function Validate(id){ if(arguments.length != 1){ throw new Error("Argument is required"); } this.errors = []; this.id = id; this.container = $("#" + id); } Validate.prototype = { cons

一个简单的通讯服务框架(大家发表意见一起研究)JAVA版本

最近研究下java语言,根据一般使用的情况,写了个连接通讯服务的框架: 框架结构 C-Manager-S; 把所有通讯内容抽取成三个方法接口:GetData,SetData,带返还的Get; 所有数据都处理为byte[];客户端与服务端和管理器以及服务端有多重处理模式 管理信息: 1.不需要中心管理器:服务端启动时向客户端广播自己绑定的地址:接收数据:客户端使用时广播一次请求,向所有服务端获取服务信息: 2.管理中心:客户端向管理器请求服务信息:服务端向管理器注册地址:根据需要,可以把客户端传递

一个简单编译器前端的实现

小记: 其实这个程序是编译原理这门课的综合实验,前段时间我申请免试又失败了,原因是有缺课,平时分不够,早上赖床现在尝到苦果我也是醉了……没办法,逼上梁山,只好攻克这个大boss以拿下免试资格. 选了一个最简单的文法,分析了1个多星期,终于决定开始要写的时候时间已经很紧了. 去实验室通宵了一晚,在宿舍熬了一晚,睡了3个小时就起来去验收了.还好是通过了,没白费劲. 不得不说,编译原理就是烧脑,知识点都比较抽象,如果数据结构和算法的基础打得不牢的话,实现起来会感到吃力. 再次感觉到了基础的重要性,这也

Directx11学习笔记【十一】 画一个简单的三角形--effect框架的使用

这里不再介绍effect框架的具体使用,有关effect框架使用可参考http://www.cnblogs.com/zhangbaochong/p/5475961.html 实现的功能依然是画一个简单的三角形,只不过使用了effect框架. 为了体现使用effect框架方便变量绑定的优点,我们对着色器代码做了修改,增加了一个常量float4x4 gWorldViewProj cbuffer cbPerObject { float4x4 gWorldViewProj; }; float4 VS_M

一个简单的Python MVC框架(4)

前面都是准备,这里是整个Web Mvc框架的核心地方,稍微多介绍一下.核心类是一个叫Dspth的模块.这里我没有处理路由,一个是不太熟,另外一个是主要是体会架构.我用的路由规则如下:1)用URL的地址参数进行路由,有两个参数,一个是ctr,表示控制类,一个是act表示执行的方法2)所有执行方法都约定参数格式如下self,Environ,CGI,CGITB,Form,Cookies,SessionId,*Args当然,真正做框架的时候,可以把Environ,CGI,CGITB,Form,Cooki

一个简单的python MVC框架(1)

因为买了本机器学习的书是python的,所以学习了一下python,就用python做了一个简单的web开发的mvc小框架.整个框架分为实体层,数据访问层,业务基类层,Web请求转发层,控制层和视图层.当然也包括一些辅助性工具类.下面一一介绍,希望对跟我一样初学python的有点帮助:1)实体层      由实体基类和用户实体类组成.实体类可以由数据库自动生成,提供了一个DbTools,可以自动生成规则的实体.下面是实体基类: import threading #用户错误类,用于抛出自定义的异常

[51单片机] 以PWM控制直流电机为例建一个简单的51工程框架

目录 1)功能概述 2)引脚连接 3)框架介绍 4)模块说明 5)复用规则 6)工程链接 1)功能概述 名称:独立按键控制直流电机调速 内容:对应的电机接口需用杜邦线连接到uln2003电机控制端; 使用5V-12V 小功率电机皆可 2个按键分别加速和减速; 采用8个8段数码管的后两位显示0~10级速度; 2)引脚连接 P3连接按键:P0连接8x八段数码管,P22段码锁存,P23位码锁存:P1.1连接ULN2003的一个输入:直流电机端连接ULN2003对应的输出,另一端连接VCC. 3)框架介

原生JS实现一个简单的前端路由(原理)

说一下前端路由实现的简要原理,以 hash 形式(也可以使用 History API 来处理)为例, 当 url 的 hash 发生变化时,触发 hashchange 注册的回调,回调中去进行不同的操作,进行不同的内容的展示. 直接看代码或许更直观. 1 function Router() { 2 this.routes = {}; 3 this.currentUrl = ''; 4 } 5 Router.prototype.route = function(path, callback) {