<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script>
var mediator = (
function(){
var subscribe =
function(channel,fn){
if(!mediator.channels[channel])mediator.channels[channel] =
[];
mediator.channels[channel].push( {context: this,callback: fn} );
return this;
};
var publish =
function(channel){
if(!mediator.channels[channel])
return false;
var args = Array.prototype.slice.call(arguments,
null);
for(
var i= 0,l = mediator.channels[channel].length; i<l; i++
){
var subscription =
mediator.channels[channel][i];
subscription.callback.call(subscription.context,args);
};
return this;
};
return {
channels : {},
publish : publish,
subscribe : subscribe,
installTo : function(obj){
obj.subscribe =
subscribe;
obj.publish =
publish;
}
}
}());
(function(mediator){
function initialize(){
mediator.name = 'dudu'
;
mediator.subscribe('nameChange',
function(arg){
console.log(this.name);
this.name =
arg;
console.log(this.name);
});
};
function updata(name){
mediator.publish('nameChange','tom'
);
}
initialize();
updata()
})(mediator)
</script>
</body>
</html>
转载于:https://www.cnblogs.com/diligenceday/p/3428119.html