最近看了一些mvvm的核心代码实现,其中有一段代码想不明白,代码如下:
Object.defineProperty(object, key, {
configurable: true,
enumerable: true,
get: function () {
if (Dep.target) {
dep.addSub(Dep.target)
Dep.target.addDep(dep)
}
return value
},
set: function (newValue) {
if (newValue != value) {
value = newValue
dep.notify()
}
}
})
Dep.target 我理解的是一个全局的属性,是全局唯一的值,怎么来用他来实现标记是否已经被订阅了呢?这个地方百思不得其解。
希望高手能详细解释一下。谢谢