gpt4 book ai didi

javascript - 重写 JQuery 函数(日志装饰器)

转载 作者:行者123 更新时间:2023-12-03 02:53:17 25 4
gpt4 key购买 nike

我想围绕 jQuery 函数创建一个日志装饰器,但它只被调用一次(在初始化时)。如何修复它?请看一下代码。

function makeLogging(f) {

function wrapper(...rest) {
console.log(f.name);
console.log(rest);
return f.apply(this, rest);
}

return wrapper;
}

const task = $('.task');

task.on = makeLogging(task.on);

task.on('click', () => console.log('hi'));

点击事件不会显示有关被调用函数的消息。

最佳答案

如果我明白了你想要实现的目标,你就做得有点错误了。对于您所描述的功能,请尝试以下操作:

task.on('click', makeLogging(() => console.log('hi')));

在您的原始代码中,您包装了 on() 函数的功能,但此 on() 函数并未作为事件处理程序调用 - 它仅安装实际事件处理程序。这就是为什么在安装处理程序期间仅调用一次日志记录。

关于javascript - 重写 JQuery 函数(日志装饰器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47746225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com