Есть ли простой способ сохранить все свойства события мыши? - PullRequest
1 голос
/ 10 июня 2019

Впервые в Javascript, в настоящее время разрабатывается расширение Chrome, которое сохраняет данные о просмотре.Есть ли какой-нибудь метод «лови все», который сразу получает все свойства, скажем, щелчка мышью?Или мне просто нужно сохранять каждое отдельное свойство вручную?

В настоящее время я делаю последнее и собираю данные следующим образом:

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

Есть ли более простой способ выполнить эту задачу?

1 Ответ

1 голос
/ 10 июня 2019

Вы можете сохранить сам объект:

theEvent = e;

Если по какой-либо причине вы не хотите этого делать, вы можете скопировать собственные свойства объекта, используя расширенную запись или Object.assign:

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

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

... но я не удивлюсь, если вы обнаружите, что некоторые свойства были унаследованными свойствами доступа, а не собственными свойствами объекта.

Как упоминает frobinsonj , вы также можете использовать деструктуризацию, поэтому вам нужно перечислить свойства только один раз. Кажется, в вашем коде эти переменные объявлены в другом месте и просто установлены внутри функции, что вы можете сделать с помощью деструктурирования следующим образом:

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

Вам нужен (), потому что в противном случае в контексте оператора { запускает блок. (примеру Фробинсоня они не нужны из-за var.)

...