자바에서는 소유하지 않은 객체를 수정해서는 안된다는 것이 일반적인 이해입니다. 나는 그 논쟁을 이해하고 동의한다. 그럼에도 불구하고 Event 객체의 몇 가지 속성을 추가하려고합니다. 먼저 작은 배경과 의미가 무엇인지 그리고 내가 프로와 사기가있는 지적인 피드백을 얻기를 희망합니다.자바에서 이벤트 객체 수정
addEvent, removeEvent 등과 같은 메소드가있는 이벤트 관리자를 작성했습니다. 이벤트가 발생하면 처리기를 호출하여 eventlisteners가 등록 될 때 전달 된 이벤트 핸들러에 이벤트 객체를 전달합니다. .
이벤트 객체를 전달하기 전에 몇 가지 속성을 이벤트 객체에 추가합니다. 예를 들면; "hot-key"- "shift-c", "alt-d"또는 "meta-a"와 같은 가능한 값 사용. (마지막 하나는 Window의 "ctrl-a"와 MacOS의 "cmd + a"에 해당합니다. 즉, OS에 따라 올바르게 일치 할 것이고 핸들러의 논리적 패턴은 켜져 있는지 여부를 신경 쓸 필요가 없습니다 어떤 OS 또는 어떤 메타 키인지)
의미있는 것은 모든 필요한 "if-then"문이 이벤트 관리자에 의해 실행 되었기 때문에 처리기 코드가 작아지는 것입니다. 키 관련 이벤트가 발생했습니다. 이벤트 핸들러는 switch 문을 가지고 재미있는 일을 할 필요가 거의 없다.
hotKey-properties 외에 다른 속성도 추가 할 예정입니다. 주로 이벤트 처리기 기능을 단순화하여 이벤트 처리기에서 일반적으로 실행되는 논리를 제거합니다. colissions의 이름 지정을 피하기 위해 하위 속성에 새 속성을 추가 할 수 있습니다. 즉, 속성이 최상위 속성 일 필요는 없습니다.
저는 이것을 현재 구현 중이지만 통찰력을 얻고 싶지는 않을 것 같습니다.
ADDITION
문제는 다른 사람들이 아래의 구현의 생각이다. 이를 위해서는 핸들러에 전달 된 이벤트 오브젝트를 수정해야합니다. 나는 내가 소유하지 않은 객체를 실제로 수정하고 있기 때문에 질문을하고 있는데,이 경우에는 그렇게하는 것이 유리합니다.
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