假设我们有以下对象:
class Foo{
constructor(){
this.count = 0;
}
method1() { <does something> }
method2() { <does something else> }
method3() { <does something even more> }
}
显然,现在我们可以向EACH方法添加以下代码行,计数将更新:
this.count++;
虽然我知道这只是一行代码,但可以说这是冗余的一行代码。那么,是否有一种方法可以检测对象方法是否被调用,然后更新计数?
您可以遍历要添加的方法的单独对象,并让它们先执行this.count++
。
class Foo{
constructor(){
this.count = 0;
}
}
const methods = {
method1() {
console.log('m1');
},
method2() {
console.log('m2');
},
method3() {
console.log('m3');
},
};
for (const [key, value] of Object.entries(methods)) {
Foo.prototype[key] = function(...args) {
this.count++;
value(...args);
}
}
const f = new Foo();
f.method1();
f.method1();
f.method2();
console.log(f.count);