【发布时间】:2021-07-08 08:49:54
【问题描述】:
我有一个具有 100 多个函数的 es6 类。
我添加了一个新函数,每次调用任何其他函数时都必须运行该函数。
我找到了很多解决方案,但没有人解决我的问题...
我知道我可以将此调用添加到每个函数,但我将以重复代码和所有函数的大量工作结束。
这就是我到目前为止所做的:
return class Test {
constructor () {}
addedFN() {
console.log('FN');
}
A() {
this.addedFN();
console.log('A');
}
B() {
this.addedFN();
console.log('B');
}
C() {
this.addedFN();
console.log('C');
}
...
}
正如我们在这种方法中看到的那样,我有很多我想避免的代码重复...
另外,先调用新函数,再在内部调用下一个函数的解决方案是行不通的,因为所有函数在应用程序的很多地方都用到了。
我还尝试在构造函数中运行以下代码,但这是一个糟糕的解决方案,因为我的类被多次调用,然后每次都会运行此代码:
for(const key of Object.getOwnPropertyNames(Test.prototype)) {
const old = Test.prototype[key];
Test.prototype[key] = function(...args) {
addedFN(...args);
old.call(this, ...args);
};
}
【问题讨论】:
标签: javascript ecmascript-6 ecmascript-5