Javascript 新手,目前正在开发一个可保存浏览数据的 Chrome 扩展程序。是否有一些“包罗万象”的方法可以立即获取鼠标单击的所有属性?或者我只需要手动保存每个单独的属性?
目前,我正在执行后者并收集如下数据:
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);
...但如果您发现某些属性是继承的访问器属性而不是对象自己的属性,我不会感到惊讶。
如frobinsonj mentions ,您还可以使用解构,这样您只需列出属性一次。您的代码似乎在其他地方声明了这些变量,并且只是在函数内设置,您可以通过像这样的解构来完成:
({altKey, pageX, pageY, buttons} = e);
您需要 ()
,因为否则在语句上下文中,{
会启动一个 block 。 (由于 var
,frobinsonj 的示例不需要它们。)
关于javascript - 有没有一种简单的方法来保存鼠标事件的所有属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56529543/