JS实现简陋的观察者模式

Posted 飞尽堂前燕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS实现简陋的观察者模式相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		
		<div id="box">
			点我发布事件
		</div>
		<script src="js/jquery-2.1.0.min.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			var pubSub = function(){};
			pubSub.prototype.threadPool = [];
			pubSub.subscribe = function(name,cb){
				pubSub.prototype.threadPool.push({
					name:name,
					fun:cb
				});
			}
			
			pubSub.publish = function(name){
				var threadPool = pubSub.prototype.threadPool;
				for (var i in threadPool) {
					setTimeout(function(i){
						if(threadPool[i][‘name‘]==name){
							threadPool[i][‘fun‘]();
						}
					}(i),0);
				}
			}
			
			$("#box").click(function(){
				pubSub.publish(‘dateChange‘);
			})
			
			pubSub.subscribe(‘dateChange‘,function(){
				this.name = ‘lisi‘
				console.log(‘hello world‘)
			})
			
			
			pubSub.subscribe(‘dateChange‘,function(){
				this.name = ‘zhangsan‘
				console.log(‘这是我订阅的第二个方法‘)
			})
			
		</script>
	</body>
</html>

  

有时间会更新一下。。。。。。

以上是关于JS实现简陋的观察者模式的主要内容,如果未能解决你的问题,请参考以下文章

JS实现Observable观察者模式

js设计模式-观察者模式来模拟vue的双向数据绑定

设计模式 行为型模式 -- 观察者模式(发布-订阅(Publish/Subscribe)模式)

简陋的斗地主,js实现

观察者模式(JS描述)

JS观察者设计模式:实现iframe之间快捷通信