const vue = {
a: 10,
b: 20,
isValid: true
}
Object.defineProperty(vue, 'isValid', {
get() {
return vue.a + vue.b === 40
}
})
console.log(vue.isValid)
vue.a = 20
console.log(vue.isValid)
try {
console.log('a')
} catch(err) {
} finally {
console.log('b')
}
var Dep = function Dep() {
this.id = 2
this.subs = [];
}
Dep.prototype.addSub = function addSub(sub) {
this.subs.push(sub)
console.log(this.subs.length)
}
Dep.prototype.removeSub = function removeSub(sub) {
this.subs.splice(this.subs.indexOf(sub), 1)
console.log('subs: ', this.subs)
}
Dep.prototype.notify = function notify () {
// stabilize the subscriber list first
console.log('nofity this.subs: ', this.subs)
}
let dep = new Dep()
dep.addSub(1)
dep.addSub(2)
dep.addSub(2)
dep.addSub(2)
// dep.removeSub(2)
dep.notify()
console