Javascriptでは、所有していないオブジェクトを変更しないでください。私は議論を理解し、同意する。それにもかかわらず、Eventオブジェクトの2つのプロパティを追加することを検討しています。最初に私は少しの背景だけでなく、その意味がどんなものかを書いていくつもりです。そして、私はプロと詐欺を持ってあなたから知的なフィードバックを得ることを望んでいます。Javascriptでのイベントオブジェクトの変更
addEvent、removeEventなどのメソッドを持つイベントマネージャーを作成しました。イベントが発生すると、イベントリスナーが登録されたときに渡されたイベントハンドラーにイベントオブジェクトを渡してハンドラーを呼び出します。
イベントオブジェクトを渡す前に、いくつかのプロパティをイベントオブジェクトに追加します。例えば; "hotkey" - "shift-c"、 "alt-d"、 "meta-a"などの可能な値を使用します。 (最後はWindowの "ctrl-a"、MacOSの "cmd + a"などに相当します。言い換えれば、OSによっては正しく一致し、ハンドラの論理パターンはオンになっているかどうか気にする必要はありませんどのOSやどのメタキーであるか)
これは、必要な「if-then」ステートメントがイベントマネージャによって実行されたことにより、ハンドラコードが小さくなることを意味します。キー関連のイベントが発生しました。イベントハンドラは、switch-statementを持っていて楽しいことをする必要があります。
hotKey-propertiesの他にも、イベントハンドラの機能を単純化し、イベントハンドラによって一般的に実行されるロジックを排除するために、いくつかのプロパティも追加する予定です。色の名前付けを避けるために、新しいプロパティをサブオブジェクトに追加することがあります。つまり、プロパティはトップレベルのプロパティである必要はありません。
私は現時点でこれを実装していますが、私は考えていないかもしれない洞察を得ることを望んでいます。
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