js简单观察者模式

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>

</head>
<body>


<script>

  'use strict'
  // 通过继承实现的观察者模式
  // 将观察者注册进被观察者
  // 当被观察者a属性name改变,观察者b的属性随之改变

  // 观察者
  const a ={
    name:'a'
  }
  const c ={
    name:'c'
  }


  // 被观察者
  const b = {
  }

  let oldValue = 'b'
  Object.defineProperty(b,'name',{
    get:function(){
      return oldValue
    },
    set:function(newValue) {
      oldValue = newValue
      c.name = a.name = newValue

    }
  })

  b.name = 'bb'

  console.log(b.name,a.name,c.name);


</script>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值