修改对象属性时如何触发回调?

Nei*_*eil 4 javascript class callback ecmascript-6

如果我有这样的课程:

class Myclass {
    constructor(){
        this.a = [];
        this.sum = 0;
    }

    update(){
       this.sum = this.a.reduce((a, b) => a + b, 0)
    }
}
Run Code Online (Sandbox Code Playgroud)

我实例化这个类:

myClass = new Myclass();
Run Code Online (Sandbox Code Playgroud)

我在a属性上附加了一个数字

myClass.a.push(1);
myClass.a.push(2);
Run Code Online (Sandbox Code Playgroud)

每次a修改属性时如何调用更新方法?换句话说,当对象属性改变时如何触发回调?

小智 7

添加将新项目推送到a数组的方法,例如:

class Myclass {
    constructor(){
        this.a = [];
        this.sum = 0;
    }

    update(){
       this.sum = this.a.reduce((a, b) => a + b, 0)
    }

    pushItem(val) {
        this.a.push(val);
        this.update();
    }

}

myClass = new Myclass();
myClass.pushItem(1);
myClass.pushItem(2);
console.log(myClass.sum);
Run Code Online (Sandbox Code Playgroud)