Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 追加/重新定义函数?_Javascript_Function_Redefine - Fatal编程技术网

Javascript 追加/重新定义函数?

Javascript 追加/重新定义函数?,javascript,function,redefine,Javascript,Function,Redefine,我有一个函数处理程序: function handler(data) { console.log(`1. ${data}`); } handler("bar"); 我想在相同的范围内追加或重新定义,如下所示: let oldHandler = handler; function handler(data) { oldHandler(data); console.log(`2. ${data}`); } 这样,当我现在调用处理程序时: function handler

我有一个函数
处理程序

function handler(data) {
    console.log(`1. ${data}`);
}
handler("bar");
我想在相同的范围内追加或重新定义,如下所示:

let oldHandler = handler;
function handler(data) {
    oldHandler(data);
    console.log(`2. ${data}`);
}
这样,当我现在调用
处理程序时

function handler(data) {
    console.log(`1. ${data}`);
}
handler("bar");
我预计产出为:

1. bar
2. bar
这可能吗

编辑


目前,上述结果导致错误:未知:标识符“handler”已声明

函数声明

  • 声明具有匹配名称的变量
  • 吊运
改用函数表达式。这些都不能满足上述要求

函数处理程序(数据){
log(`1.${data}`);
}
让oldHandler=handler;
handler=函数处理程序(数据){
oldHandler(数据);
log(`2.${data}`);
};

经办人(“律师”)由于提升
oldHandler
将引用
handler
的第二个声明,您将以无限递归结束。