javascript - 追加/重新定义函数?

标签 javascript function redefine

我有一个函数处理程序:

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/

相关文章:

javascript - 如何在JS中重新定义标准函数的构造函数?

java - gwt-voices - wav 文件未播放

javascript - GitHub:如何在搜索对某些存储库有贡献的用户的帐户详细信息时避免超出搜索限制?

c - 这个数组函数有什么作用呢? - C 编程

node.js - 函数参数 - id 与对象

bash - 如何列出我的 shell 中定义的函数?

javascript - 使用javascript自定义下拉框?

javascript - Discord.js Bot 忽略前缀并将响应前面的任何内容

python - 如何覆盖odoo11中的主要创建方法?

c++ - 我正在寻找使用相同代码定义两个具有不同名称的库