gpt4 book ai didi

javascript - 为模块函数制作 beforeFilter?

转载 作者:行者123 更新时间:2023-11-30 14:47:13 24 4
gpt4 key购买 nike

beforeFilter 是在调用任何函数之前执行的代码块。我是 JavaScript 的新手。

假设我有一个模块:

SomeModule.js

module.exports = {

someFunction: function (arg) {
//some logic here
},
}

现在每当我想调用上面的函数时,我会做:

SomeModule.someFunction("helloWorld");

像这样你可以假设我在模块中有很多函数,但我想在调用模块的任何函数之前执行一些代码,假设我想执行这一行:

console.log("BeforeFilter Called");

所以问题是:如何确保在调用模块的任何函数之前执行该行?

最佳答案

您必须遍历 SomeModule 的属性并覆盖所有作为函数的属性:

const SomeModule = {
someFunction(a, b) {
console.log('some function', a + b);
}
};

for (const i in SomeModule) {
if (typeof SomeModule[i] === 'function') {
const originalFunction = SomeModule[i];
SomeModule[i] = function (...args) {
console.log('BeforeFilter Called');
originalFunction(...args);
};
}
}

SomeModule.someFunction(3, 4);

关于javascript - 为模块函数制作 beforeFilter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48719845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com