js 实现函数触发器,该如何解决
js 实现函数触发器
Event.prototype.trigger = function( eventName , data){
//这里面要怎么写?
}
或者 思路是什么呢~
------解决方案--------------------
这个是你想说的问题吗?
触发其实就是在执行对应的函数而已,所以需要你先把需要的信息放到listeners对象中,后面如果有触发对应类型的事件的话,就去listeners对象中找这个属性,找到的话就执行~~~
Event.prototype.trigger = function( eventName , data){
//这里面要怎么写?
}
或者 思路是什么呢~
------解决方案--------------------
function zhang(data){
alert(data.name);
}
function yun(data){
alert(data.name);
}
var listeners = {"zhang":zhang,"yun":yun};
Event.prototype.trigger = function( eventName , data){
var fn = listeners[eventName]
------解决方案--------------------
null;
var i,len;
if(fn instanceof Array){
for(i=0,i<fn.length;i<len;i++){
fn[i] && fn[i](data);
}
}else if(fn instanceof Function){
fn && fn(data);
}
}
var a = new Event("aaa");
a.trigger("zhang",{name:"zhang"});
a.trigger("yun",{name:"yun"});
a.trigger("yun1",{name:"yun"});
这个是你想说的问题吗?
触发其实就是在执行对应的函数而已,所以需要你先把需要的信息放到listeners对象中,后面如果有触发对应类型的事件的话,就去listeners对象中找这个属性,找到的话就执行~~~