克隆 JavaScript 事件对象

2024-01-08

有人知道如何对本机 javascript 事件对象进行深度复制/克隆吗?我知道我可以创建一个新的事件对象并手动设置适当的属性以匹配原始事件,但如果有一种方法可以克隆,那就容易多了。


上面的代码不会正确复制任何 getter/setter。尝试:

function cloneEvent(e) {
    if (e===undefined || e===null) return undefined;
    function ClonedEvent() {};  
    let clone=new ClonedEvent();
    for (let p in e) {
        let d=Object.getOwnPropertyDescriptor(e, p);
        if (d && (d.get || d.set)) Object.defineProperty(clone, p, d); else clone[p] = e[p];
    }
    Object.setPrototypeOf(clone, e);
    return clone;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

克隆 JavaScript 事件对象 的相关文章

随机推荐

  • C# Word Interop - 在没有转换提示的情况下打开 .pdf

    我正在使用 Word Interop 希望打开 pdf 文件并让 Word 自动进行转换 我设置了以下属性 var wordApp new Word Application wordApp DisplayAlerts Word WdAler
  • Android:为什么在自定义视图中重写onMeasure()后,视图的文本无法在RalativeLayout中显示?

    我制作了一个扩展的自定义组件View并覆盖其onMeasure 该组件的内容是一些文本 然后我将其添加到RelativeLayout 但是如果我评论的话这个文字就无法显示onMeasure 文本显示已被覆盖 什么原因 这是代码 public
  • Kotlin 的 Float、Int 等是否针对 JVM 中的内置类型进行了优化? [复制]

    这个问题在这里已经有答案了 我是 Kotlin 的新手 AFAICT 的语法仅支持 Int Float 等对象版本 而不支持 Java 的相应 int 和 float 原语 但是如果可能的话 编译器或 JVM 是否会优化以使用原始类型 我担
  • Haskell RSS、邮件和 XML 库选择

    我已经学习 Haskell 一段时间了 随着我学习的每一种新的编程语言 我都会做一个小项目 需要使用邮件服务器并发布 RSS 和 Atom 内容 唯一的问题是 我似乎找不到合适的软件包 或者至少找不到任何软件包的评论 所以我会问社区 有没有
  • 从非托管 C++ 调用 C# 函数(通过托管包装器)

    我有一组库的 C 源代码和标头 我需要从 C 应用程序调用它们 我已经围绕我需要的函数创建了一个托管 C 包装器 并且能够从 C 中调用它们 向后和向前编组数据 现在是困难的部分 我的非托管 C 库在运行时生成状态消息 我希望能够从调用的
  • 如何在 CheckedListbox 中 CheckOnClick 但仅在复选框上方时进行 CheckOnClick?

    我有一个 CheckedListBox 我希望能够在单击文本时选择项目 但在单击左侧的复选框区域时选中 取消选中它们 如果我设置 CheckOnClick 那么每当我单击时 即使在文本上 项目也会被选中和取消选中 所以这是不好的 但是 如果
  • 如何避免高内存使用应用程序内存不足? C/C++

    我编写了一个转换器 它采用 openstreetmap xml 文件并将它们转换为二进制运行时渲染格式 该格式通常约为原始大小的 10 输入文件大小通常为 3GB 或更大 输入文件不会一次全部加载到内存中 而是以收集点和多边形的方式进行流式
  • 在路线中使用航点 - Google 地图路线服务

    如果我将航点添加到我的谷歌地图 功能 calcRoute 不起作用 如何正确设置航点 Thanks
  • 匹配字符串中的子集

    假设我有 String x ab String y xypa 如果我想看看 y 中是否存在 x 的任何子集 最快的方法是什么 循环很耗时 在上面的例子中 x 的子集是 a 它可以在 y 中找到 答案确实取决于很多因素 如果你只是想找到any
  • 无法在asp.net core中使用ajax将json发布到控制器

    我有以下代码 控制器动作方法 HttpPost public async Task
  • 有没有一种方法可以比较阿拉伯字符而不考虑它们的首/中/尾形式?

    在拉丁字母中 字母有大写和小写两种形式 在Python中 如果你想比较两个字符串而不考虑它们的大小写 你可以使用以下命令将它们转换为相同的大小写 string upper or string lower 在阿拉伯文字中 字母可以有词首 词尾
  • 聚合 MongoDB 中的不同值

    我有一个 mongodb 数据库 有 18625 个集合 它有以下键 id ObjectId 5aab14d2fc08b46adb79d99c game id NumberInt 4 score phrase Great title NHL
  • 长时间尝试语句

    将函数的大部分代码放在一个函数中是否有任何缺点 try statement 如果我做某事需要try statement 我通常最终会在 try 语句中为该函数做很多工作 因为我通常在那里声明我的变量 并且如果我这样做 就不能在该范围之外使用
  • 从 UART 接收的数据中获取子字符串并放入 LCD

    发布为基于的新问题this one https stackoverflow com questions 59559083 is there string in c OP 最初对已回滚的问题进行了巨大更改 因为用户表示他们无法自己提出问题 A
  • Python 与 Ruby 进行元编程 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在导入模块期间访问 PrivateData

    我想加载 config xml 文件的内容并将其存储在 PrivateData当我的模块加载时 这是我的 PSD1 中的定义行 Private data to pass to the module specified in ModuleTo
  • 使用 WPF shell 集成库最大化时窗口超出屏幕

    我正在使用WPF Shell 集成库 http code msdn microsoft com WPFShell创建我的 wpf 应用程序的自定义 chrome 一切都很好 但是当最大化应用程序时 屏幕外会出现 6 或 7 个像素 这是我正
  • 是否有 link.exe 的替代链接器?

    我正在开发一个代理 DLL 并希望导出其中包含 字符的符号 然而 这个字符似乎对 link exe 有特殊含义 我猜实际上是对 lib exe 给定一个 C 文件 extern C void f I can创建一个导出的 DLLf as f
  • 复杂表达式中的后缀增量运算符究竟何时计算?

    说我有这样的表情 short v p i 0xFF lt lt 4 p i 0xF0000000 gt gt 28 with p是一个指向动态分配的 32 位整数数组的指针 When exactly will i会增加吗 我注意到上面的代码
  • 克隆 JavaScript 事件对象

    有人知道如何对本机 javascript 事件对象进行深度复制 克隆吗 我知道我可以创建一个新的事件对象并手动设置适当的属性以匹配原始事件 但如果有一种方法可以克隆 那就容易多了 上面的代码不会正确复制任何 getter setter 尝试