追加/重新定义函数?

Appending to / redefining a function?

我有一个函数handler:

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

这可能吗?

编辑

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

函数声明

  • 声明一个具有匹配名称的变量
  • 已挂起

改用函数表达式。这些都不做上述任何事情。

function handler(data) {
  console.log(`1. ${data}`);
}

let oldHandler = handler;

handler = function handler(data) {
  oldHandler(data);
  console.log(`2. ${data}`);
};

handler("bar");