<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> </body> <script type="text/javascript"> // 观察者模式嘛,大段的概念我就不贴了。 // 大体上是, // 1、松耦合的代码; // 2、一对多的关系; // 3、主体状态变化时,所有依赖被通知; // 4、主体和观察者互不知晓。 // 基本上,满足上面四点的,就可以算是观察者模式了。来看一个demo, //发布 var pub = { action:function(){ dep.update(); } } //订阅 var sub1 = { update:function(){ console.log(1); } } var sub2 = { update:function(){ console.log(2); } } var sub3 = { update:function(){ console.log(3); } } //主体 function Dep( _subs ){ this.update = function(){ for (var i = 0; i < _subs.length; i++) { _subs[i].update(); } } } //发布消息 var dep = new Dep([sub1,sub2,sub3]); pub.action(); </script> </html>