javascript - 是否有任何理由不在 JavaScript 中的 Event 对象上定义自定义属性?
问题描述
大多数情况下,有什么理由不在 JavaScript 中的 Event 对象上定义自定义属性吗?
我正在窗口对象上调度我自己的事件,并且我想向事件对象添加相关属性。
在 JavaScript 中为 Event 对象定义自定义属性是否令人不悦?皱眉还是鬼脸?
var infoEvent = new Event("info");
infoEvent.message = message;
infoEvent.referenceID = id;
window.dispatchEvent(infoEvent);
不保证有 ES5 或 ES6。
看起来在评论中建议了使用 CustomEvent 的替代方法。
解决方案
不,你永远不应该在 DOM 对象上定义自定义属性。界面上有许多属性Event
,即使你现在不与它们中的任何一个发生冲突,将来也可能会有更多的属性。请注意,已经有一个MessageEvent
接口,甚至MediaKeyMessageEvent
还有一个具有.message
属性的接口。
将自定义数据附加到自定义 DOM 事件的正确方法是使用APICustomEvent
并将数据放在其.detail
属性上(您可以从构造函数初始化)。
推荐阅读
- macos - 尽管启动并运行,但无法连接到本地 redis docker
- python - Selenium python在没有输入类型文件时如何上传文件?
- python - Python - 获取变量名并使用它来创建新变量
- ios - iOS顶部的白屏反应原生
- z3 - 如何在 Z3 中表示符号求和?
- elixir - Elixir 仅适用于 C:\Windows\System32 目录
- php - 封装和非暴露内部与 SRP
- sparql - SPARQL 查询:OR 在过滤器中?
- javascript - scrollToIndex 超出范围:请求 index1 但最大值为 -1 .. React Native
- javascript - 使用 jQuery.countdown 只计算营业时间