web开发时,我们经常需要组件化,很多时候,我们需要一个简单的事件系统,当指定类型的事件触发时,调用回调函数。
比如,我需要实现一个EventTest类,当触发事件时,调用回调。
var EventTest = (function () {
var _events = []; //存储事件数组
var obj = function eventTest(val)
{
this.val = val;
}
//这里用于测试,直接手动触发事件,这里"s3", this.val作为参数传递给回调函数,那么在回调函数中,我们就可以使用这两个参数
obj.prototype.tt = function (type)
{
trigger(type, "s3", this.val);
};
function trigger(type, arg1, arg2) //回调触发的函数
{
if (_events[type])
{
_events[type](arg1, arg2);
}
}
obj.prototype.add3 = function (type, fun) //添加回调
{
_events[type] = fun;
};
return obj;
})();
以上就是一个类添加事件的简单实现。