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/

相关文章:

java - Java 读/写文件中的编码不正确

javascript - 为什么 console.log 返回正确,但我的函数返回未定义?

javascript - 带有 Union 的条件类型

javascript - 是否可以在IE中实现WebKit的Scrollbar效果?

javascript - 在 Angular 2+ 中从 Highcharts 库加载各种图表

javascript - 提交表单后,Jquery 运行代码并将结果显示到控制台

javascript - 如何将本地文件定义为 DOM 对象?

javascript - 设置新元素类属性值

javascript - 如何在 addEventListener 中传递元素的 id?

javascript - 理解JavaScript的dom0事件模型