U
let has =0: let inFlush-false; function proxyReactive(obj){
const dep= new Depo
//proxy綁定
return new Proxy(obj,{
get(target, prop, receiver) # if (Dep.target) ( dep.addSub(prop, Dep.target)
return Reflect.get(target, prop, receiver)
?
set(target, prop, value, receiver)(
const result = Reflect.set(target, prop, value, receiver)
dep.notify(prop)
return result
#
//Object.defineProperty方法function defineReactive(obj, key, val) {
const dep= new DepO Object.defineProperty(obj,key, get:O-
if (Dep.target){
dep.addSub(key, Dep.target)
return val
}.
set: (newal)
valnewVal
dep.notify(key)//數(shù)據(jù)變化通知所有的訂閱者
一
一
class Dep V/依賴收集器
constructoro{