javascript - 克隆 javascript 事件对象

标签 javascript dom dom-events

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

最佳答案

以上代码不会正确复制任何 getters/setters。尝试:

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;
}

关于javascript - 克隆 javascript 事件对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12593035/

相关文章:

javascript - 首先隐藏然后使用 jQuery 根据下拉选择显示多个 tbody 组

javascript - 通过回车键进行跨组件通信

javascript - 关于动画的 Highcharts 事件完成了吗?

javascript - 在 JavaScript 中,如果在 HTML 元素及其祖先上声明事件触发器,哪个先触发?

javascript - 如果存在则关闭弹出窗口

javascript - jQuery - 如何仅在单击外部时隐藏 DIV 元素

javascript - 从后端共享本地化字符串到 JavaScript

javascript - 为什么我不能直接引用 document.createElement?

javascript - 为什么在 “LocalStorage” 中添加/删除元素不起作用?

javascript - 如何在 Chrome 开发者工具中禁用加载时的特定脚本