观察者模式

笔试题: 写一段js代码表示你会观察者模式

观察者模式:  一个变量值被修改时,可以自动通知所有关注这个变量的对象,自动重新获得这个变量的新值

    //定义一个data对象
    var data = {
      //对象中添加一个变量
      money: 0,
      //对象中添加一个观察者对象,用于保存观察者
      observers: [],
      //对象中添加set方法,用于修改变量值
      //在修改后,调用对象的noticyAll方法
      setMoney(money){
        this.money = money,
        this.noticyAll()
      },
      //对象中添加noticyALL方法 用于遍历观察者对象
      //并对每个对象调用get方法,用于获取新的变量值
      noticyAll(){
        this.observers.forEach((obj) => {
          obj.getMoney()
        })
      }
    }
    //定义一个观察者,自带一个getMoney方法用于获取money
    var obj1 = {
      money: 500,
      getMoney(){
        this.money = data.money
      }
    }
    //添加入观察者数组中
    data.observers.push(obj1);
    data.setMoney(900);
    console.log(obj1.money);


全部评论

相关推荐

菜鸡29号:根据已有信息能初步得出以下几点: 1、硕士排了大本和大专 2、要求会多语言要么是招人很挑剔要么就是干的活杂 3、给出校招薪资范围过于巨大,说明里面的薪资制度(包括涨薪)可能有大坑
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务