В Javascript общее понимание заключается в том, что вы не должны изменять объекты, которые у вас нет. Я понимаю и соглашаюсь с аргументами. Несмотря на это, я подумываю добавить пару свойств объекта Event. Сначала я напишу небольшой фон, а также то, что будет иметь последствия, и после этого я надеюсь получить от вас разумные отзывы, с про-и-кон.Изменение объекта события в Javascript
Я написал диспетчер событий, который имеет методы, такие как addEvent, removeEvent и т. Д. Когда события запускаются, я буду вызывать обработчики, передавая объект события обработчикам событий, прошедшим, когда регистраторы событий зарегистрированы ,
Прежде чем передать объект события, я добавлю пару свойств объекта события. Например; «hotKey» - с возможными значениями, такими как «shift-c», «alt-d» или «meta-a». (Последний соответствует «ctrl-a» на Window и «cmd + a» на MacOS и т. Д. Другими словами, в зависимости от ОС он будет правильно соответствовать, а логический шаблон обработчиков не должен заботиться о том, включен ли он какая ОС или какая мета-клавиша)
Последствия того, что код обработчиков уменьшается, благодаря тому, что все необходимые операторы if-then выполнялись диспетчером событий, когда, например, когда связанные с ключевыми событиями. Обработчик событий в значительной степени должен иметь оператор switch-statement и делать забавные вещи.
Помимо свойства hotKey, я планирую добавить некоторые другие свойства, в основном для упрощения функций обработчика событий и, тем самым, для устранения часто выполняемой логики обработчиками событий. Чтобы избежать именования колонок, я мог бы добавить новые свойства в sub-ojbect. Другими словами, свойствам не нужно быть свойствами верхнего уровня.
Я реализую это в данный момент, но я надеюсь получить информацию, о которой я, возможно, и не думал.
Сложение
Вопрос заключается в том, что другие люди думают о реализации ниже. Это требует, чтобы объект-событие, переданный обработчику, должен был изменяться. Я задаю вопрос, потому что я фактически изменяю объект, который у меня нет ... но в этом случае есть преимущества этого.
addEvent(document, "keyup", function(event) {
switch (event.hotKey) {
case 'meta-c':
// code here
break;
case 'meta-a':
// code here
break;
}
});
Если вы просто спрашиваете, нормально ли изменять объект события, я думаю, что это принадлежит [codereview] (http://codereview.stackexchange.com/) – Esailija