gpt4 book ai didi

javascript - 如何模拟 `instanceof` 测试?

转载 作者:行者123 更新时间:2023-11-29 19:02:17 24 4
gpt4 key购买 nike

在我的 React 代码中,我监听 FocusEvent,并检查被聚焦的元素的类型:

function onBlur(event) {
if(event.relatedTarget instanceof HTMLInputElement) { /* ... */ }
}

这很好用。不过,我似乎无法为它编写适当的单元测试...我想我可以按如下方式调用 onBlur 方法:

onBlur({ relatedTarget: new HTMLInputElement() });

...但不幸的是,这会导致错误:

TypeError: Illegal constructor

如果重要的话,我正在使用 Jest 和 Enzyme(我认为它们使用 jsdom?)。

如何最好地解决这个问题?

最佳答案

使用它你可以模拟你的元素:

var a = document.createElement('input')
a instanceof HTMLInputElement // returns true

如果您需要添加更多行为,那么您可以将其添加到对象 a 中。

关于javascript - 如何模拟 `instanceof` 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45955056/

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