Jasmine_in_pajamas 2021-12-22 16:46 采纳率: 100%
浏览 64
已结题

这里的dep[i](newValue,value) 是什么意思?

我今天在看vue的响应式特性里的变化侦测里的收集依赖部分,但是被这句代码迷惑住了

function defineReactive(data, key, val){
  let dep=[]
  Object.defineProperty(data, key, {
    enumerable:true,
    configurable:true,
    get:function(){
      dep.push(window.target)
      return val
    },
    set:functioin(newVal){
      if(val === newVal){return}
      for(let i=0; i<dep.length;i++){
        dep[i](newVal, val)   // 就是这句,有点构造函数的意思...
      }
      val = newVal
    }
  })
}

  • 写回答

1条回答 默认 最新

  • hfhan_872914334 2021-12-22 16:48
    关注

    当数据改变,代码进入set,逐个通知观察者dep,观察者再去做出修改,比如页面更新

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月30日
  • 已采纳回答 12月22日
  • 修改了问题 12月22日
  • 修改了问题 12月22日
  • 展开全部