题目JavaScript自定义事宜
近来碰到一个基于jQuery项目,项目中的功用节点页面都是经由过程iframe完成,然则各个iframe之间偶然须要相互通讯,相互响应一些事宜,为了更兴奋的编码所以想到了自定义事宜,还别说用起来居然有点像vue的组件通讯
top.events = {
on: function (name, func) {
if(!this.handles){
this.handles = {};
}
this.handles[name] = func;
},
emit: function (name) {
if(this.handles[name]){
//arguments是伪数组所以经由过程call来运用slice
this.handles[name].apply(null, Array.prototype.slice.call(arguments, 1));
}
},
destory: function (name) {
if(this.handles && this.handles[name]) delete this.handles[name];
}
};
//绑定
top.events.on('test', function() {});
//触发
top.events.emit('test', param));
//烧毁
top.events.destory('test');