如何解决为什么 hasOwnProperty 在 Event 对象的属性上报告错误?
我不知道该函数是直接触发还是通过事件侦听器触发。
然后我可以在函数的第一行中使用三元修复 2(在没有任何更好的方法的情况下):
myString = (e.hasOwnProperty('type')) ? myString : e;
此时 e
可能仍然是一个字符串,但没关系 - 该函数已被直接调用,所以从现在开始我将忽略它。
在我看来这些都不是处理事情的好方法,但我的限制是有时第一个函数参数将是一个 Event
对象,所以我需要考虑它,即使函数被直接调用。
暂时撇开 e.hasOwnProperty('type')
是验证 Event
对象的糟糕方法这一事实(实际上任何对象都可以有一个密钥 type
,不是吗?),我现在发现 e.hasOwnProperty('type')
总是报告错误。
这是一个例子:
const myButton = document.querySelector('button');
const clickButton = (e,f = {a: 'b'},g = {type: 'c'}) => {
console.log(e.hasOwnProperty('type'));
console.log(e.type !== undefined);
console.log(f.hasOwnProperty('type'));
console.log(f.type !== undefined);
console.log(g.hasOwnProperty('type'));
console.log(g.type !== undefined);
}
myButton.addEventListener('click',clickButton,false);
<button type="button">Click Me</button>
为什么 e.hasOwnProperty('type')
总是报错?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。