我有一个函数处理程序
:
function handler(data) {
console.log(`1. ${data}`);
}
我想在相同的范围内附加或重新定义,如下所示:
let oldHandler = handler;
function handler(data) {
oldHandler(data);
console.log(`2. ${data}`);
}
这样当我现在调用handler
时:
handler("bar");
我希望输出是:
1. bar
2. bar
这可能吗?
编辑
目前,上述结果导致错误:未知:标识符“处理程序”已被声明。
最佳答案
函数声明:
- 声明一个具有匹配名称的变量
- 被吊起
改用函数表达式。这些都不会执行上述任何操作。
function handler(data) {
console.log(`1. ${data}`);
}
let oldHandler = handler;
handler = function handler(data) {
oldHandler(data);
console.log(`2. ${data}`);
};
handler("bar");
关于javascript - 追加/重新定义函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59154605/