您的位置:首页 > 运维架构 > 网站架构

js架构之中介模式

2016-02-22 15:51 337 查看
<script type="text/javascript">
function Player(name){
this.name=name;
this.point=0;
}

Player.prototype.play=function(){//prototype属性使您有能力向对象添加属性和方法(Player添加play属性)
this.point +=1;
//通知中介者
mediator.played();
};

//计分板
var scoreboard={
//更新的html元素
ele:document.getElementById('results');
//更新得分显示
update:function(score){
var i,msg='';
for(i in score){
if (score.hasOwnProperty(i)) {
msg +='<p><strong>' + i + '</strong>';
msg +='score[i]';
msg +='</p>';
}
}
this.ele.innerHTML=msg;
}
};

//中介者
var mediator={
//所以玩家
players:{},
//初始化
setup:function(){
//将this.players赋值给内部变量player
var player=this.players;
player.home=new Player('Home');
player.guest=new Player('Guest');
},
//如果有人玩,更新分数,以下就2个玩家player.home,以及player.guest
played:function(){
//将this.players赋值给内部变量player
var player=this.players;
score={
Home:player.home.point,
Guest:player.guest.point
};
scoreboard.update(score);
}
//处理用户交互
keypress:function(e){
e=e || window.event;//window的event事件
if (e.while===49) {//按键'1'
mediator.players.home.play();//调用player对象原型方法
}
if (e.while===48) {//按键'2'
mediator.players.home.play();//调用player对象原型方法
}
}
};

//初始化
mediator.setup();
window.onkeypress=mediator.keypress();
//超时
setTimeout(function(){
window.onkeypress=null;
console.log('game over!');
},30000);
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: