SOURCE

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 命令行工具 X clear

                    
>
console