有没有简单的方法来保存Mouse Event的所有属性?

时间:2019-06-10 15:45:22

标签: javascript onclick mouseevent mouselistener

Javascript的新功能,目前正在开发可保存浏览数据的Chrome扩展程序。是否有某种“包罗万象”的方法可以一次获得鼠标单击的所有属性?还是我只需要手动保存每个属性?

当前,我正在做后者并收集像这样的数据:

function saveClick(e)
{
  altKey = e.altKey;
  pageX = e.pageX;
  pageY = e.pageY;
  buttons = e.buttons;
}

是否有更简单的方法来完成此任务?

1 个答案:

答案 0 :(得分:1)

您可以保存对象本身:

theEvent = e;

如果出于某种原因您不想这样做,则可以使用扩展符号或Object.assign复制对象自己的属性:

// Property spread
theEvent = {...e};

// Or Object.asign
theEvent = Object.assign({}, e);

...但是如果您发现某些属性是继承的访问器属性而不是对象本身的属性,我不会感到惊讶。

frobinsonj mentions一样,您也可以使用解构,因此只需列出一次属性即可。您的代码似乎在其他地方声明了这些变量,而只是在函数中进行了设置,您可以通过如下方式进行解构:

({altKey, pageX, pageY, buttons} = e);

您需要(),因为否则在语句上下文中,{将启动一个块。 (由于var,frobinsonj的示例不需要它们。)