0

我有一个功能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

这可能吗?

编辑

目前上述导致错误:未知:标识符“处理程序”已被声明

4

1 回答 1

1

函数声明

  • 声明一个具有匹配名称的变量
  • 被吊起

请改用函数表达式。这些都不是上述的。

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

let oldHandler = handler;

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

handler("bar");

于 2019-12-03T10:15:29.093 回答