有没有一种简单的方法可以保存鼠标事件的所有属性?
Is there a simple way to save all the properties of a Mouse Event?
Javascript 的新手,目前正在开发一个 Chrome 扩展程序来保存浏览数据。是否有一些 "catch-all" 方法可以立即获取所有属性,比如鼠标单击?还是我只需要手动保存每个人 属性?
目前,我正在做后者并收集这样的数据:
function saveClick(e)
{
altKey = e.altKey;
pageX = e.pageX;
pageY = e.pageY;
buttons = e.buttons;
}
有没有更简单的方法来完成这个任务?
您可以保存对象本身:
theEvent = e;
如果出于某种原因您不想这样做,您可以使用扩展符号或 Object.assign
:
复制对象自身的属性
// Property spread
theEvent = {...e};
// Or Object.asign
theEvent = Object.assign({}, e);
...但是如果您发现某些属性是继承的访问器属性而不是对象自身的属性,我不会感到惊讶。
与一样,您也可以使用解构,这样您只需列出一次属性。您的代码似乎在其他地方声明了这些变量,并且只是在函数中设置,您可以像这样使用解构来完成:
({altKey, pageX, pageY, buttons} = e);
您需要 ()
,否则在语句上下文中,{
会启动一个块。 (frobinsonj 的示例不需要它们,因为 var
。)
Javascript 的新手,目前正在开发一个 Chrome 扩展程序来保存浏览数据。是否有一些 "catch-all" 方法可以立即获取所有属性,比如鼠标单击?还是我只需要手动保存每个人 属性?
目前,我正在做后者并收集这样的数据:
function saveClick(e)
{
altKey = e.altKey;
pageX = e.pageX;
pageY = e.pageY;
buttons = e.buttons;
}
有没有更简单的方法来完成这个任务?
您可以保存对象本身:
theEvent = e;
如果出于某种原因您不想这样做,您可以使用扩展符号或 Object.assign
:
// Property spread
theEvent = {...e};
// Or Object.asign
theEvent = Object.assign({}, e);
...但是如果您发现某些属性是继承的访问器属性而不是对象自身的属性,我不会感到惊讶。
与
({altKey, pageX, pageY, buttons} = e);
您需要 ()
,否则在语句上下文中,{
会启动一个块。 (frobinsonj 的示例不需要它们,因为 var
。)