我想在 javascript 类中的函数上插入预执行和后执行挂钩。
可以说我有这样的课。
class Foo {
method1(p1, p2) {
this.p1 = p1;
this.p2 = p2;
}
method2(p3) {
this.p3 = p3;
}
}
我想为这些预先存在的类方法定义一个前后挂钩。像这样的东西。
class Foo {
before(funName, ...params){
// Should print ('method1', [p1, p2]) when method 1 is called
// and ('method2', [p3]) when method 2 is called
console.log(funName, params)
}
after(funName, result){
// Should print the function name followed by its result
console.log(funName, result)
}
method1(p1, p2) {
this.p1 = p1;
this.p2 = p2;
}
method2(p3) {
this.p3 = p3;
}
}
export default Foo;
在现有代码中进行最少更改的情况下实现这些钩子的最佳方法是什么?