gpt4 book ai didi

javascript - 销毁 ev.preventDefault()

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:40:52 25 4
gpt4 key购买 nike

当我尝试通过 ev.preventDefault() 使用对象解构时,我在 Chrome 中收到以下错误:

未捕获的类型错误:非法调用

但是,当我使用 ev.preventDefault() 而不进行解构时,它工作正常。重现此问题的代码如下所示。

const button = document.getElementById(`test-button`);

button.onclick = ({ preventDefault }) => {
preventDefault();
};
<button id=test-button type=button>Click me to see the error</button>

知道为什么会这样吗?或者如何将对象解构与事件对象一起使用?

最佳答案

preventDefault 是一种必须在事件对象上调用以了解要阻止的默认值的方法。当您只执行 preventDefault() 时,这不是方法调用语法,并且找不到事件对象:非法调用。解构语法只是访问值,它不会自动绑定(bind)任何函数。

button.onclick = (e) => {
const { preventDefault } = e; // like const preventDefault = e.preventDefault;
preventDefault(); // does not work, unlike preventDefalt.call(e)
};

关于javascript - 销毁 ev.preventDefault(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49616305/

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