假设我在nodejs中使用了这个javascript类:
modules.export = class Core{
constructor(app) {}
func1(){}
func2(){}
}
我称之为:
const Core = require(/*path to core file*/)
core = new Core()
每次调用func1()
或func2()
或构造函数时,如何附加要调用的函数?
即每次调用这两个函数时调用一个日志函数。最终,如果应用程序变得太大,这将使站点范围内的日志记录变得更容易。
答案 0 :(得分:0)
您可以从Parent Class继承,它将负责与日志绑定并覆盖Derived类函数,如下所示
class BaseLog {
constructor() {
console.log('Constructor called');
Object.getOwnPropertyNames(this.__proto__).forEach(key=> {
const fun = this.__proto__[key];
// Can not overwrite constructors
if (typeof fun === 'function' && key!=='constructor') {
const newFunc = function newFunc() {
console.log('called', key);
return fun.apply(this, arguments);
};
this.__proto__[key] = newFunc
}
})
}
}
class Test extends BaseLog {
constructor() {
super();
this.a = 10;
}
getA() {
return this.a
}
}
test = new Test()
console.log(test.getA())