JS 观察者模式
2013-06-21 18:14
190 查看
Events = function() {
var listen, log, obj, one, remove, trigger, __this;
obj = {};
__this = this;
listen = function(key, eventfn) { //把简历扔盒子, key就是联系方式.
var stack; //stack是盒子
stack = obj[key] != null ? obj[key] : obj[key] = [];
return stack.push(eventfn);
};
one = function(key, eventfn) {
remove(key);
return listen(key, eventfn);
};
remove = function(key) {
return obj[key] != null ? obj[key].length = 0 : void (0);
};
trigger = function() { //面试官打电话通知面试者
var fn, stack, i, len, key;
key = Array.prototype.shift.call(arguments);
stack = obj[key] != null ? obj[key] : obj[key] = [];
for (i = 0, len = stack.length; fn=stack[i++];) {
if (fn.apply(__this, arguments) === false) {
return false;
}
}
}
return {
listen: listen,
one: one,
remove: remove,
trigger: trigger
}
}
var adultTv = Events();
adultTv.listen('play', function(data) {
alert("whose file will show today " + data.name);
});
//发布者
adultTv.trigger('play', {
'name': 'david'
})
var listen, log, obj, one, remove, trigger, __this;
obj = {};
__this = this;
listen = function(key, eventfn) { //把简历扔盒子, key就是联系方式.
var stack; //stack是盒子
stack = obj[key] != null ? obj[key] : obj[key] = [];
return stack.push(eventfn);
};
one = function(key, eventfn) {
remove(key);
return listen(key, eventfn);
};
remove = function(key) {
return obj[key] != null ? obj[key].length = 0 : void (0);
};
trigger = function() { //面试官打电话通知面试者
var fn, stack, i, len, key;
key = Array.prototype.shift.call(arguments);
stack = obj[key] != null ? obj[key] : obj[key] = [];
for (i = 0, len = stack.length; fn=stack[i++];) {
if (fn.apply(__this, arguments) === false) {
return false;
}
}
}
return {
listen: listen,
one: one,
remove: remove,
trigger: trigger
}
}
var adultTv = Events();
adultTv.listen('play', function(data) {
alert("whose file will show today " + data.name);
});
//发布者
adultTv.trigger('play', {
'name': 'david'
})
相关文章推荐
- js之观察者模式
- JS观察者模式
- js设计模式(10)---观察者模式
- js设计模式-----观察者模式
- (四)JS学习笔记 - 模式 - 观察者模式
- js实现页面之间的监听,触发通知-------类似于观察者模式
- 【js设计模式笔记---观察者模式】
- js观察者模式
- js 设计模式学习--观察者模式
- js观察者模式学习
- 介绍一个款可以在javascript对象上实现观察者模式的类库-Watch.js
- JS观察者设计模式:实现iframe之间快捷通信
- js的观察者设计模式
- 谈谈JS的观察者模式(自定义事件)
- 【js设计模式笔记---观察者模式】
- JS_观察者模式
- JS实现观察者模式
- js与设计模式----观察者模式
- 前端基本知识:JS的异步模式:1、回调函数;2、事件监听;3、观察者模式;4、promise对象
- 观察者+js 模式