Я хочу вставить в обработчики до и после выполнения функции в 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;
Каков наилучший способ реализации этих ловушек с минимальными изменениями в существующем коде?