js架构之中介模式

<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>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值