1

eventイベントハンドラーから別の関数にオブジェクトを渡すのは悪い習慣だと考えられていますか?

例えば:

document.getElementById('something').addEventListener('mousedown', function(e) {
    console.log(someAnotherFunction(e));
});

理由はわかりませんが、これはコードの匂いのように見えますか?

4

1 に答える 1

1

一般的にいいえ、それは完全に細かいパターンです。

ただし、イベント処理とアプリケーション ロジックを分離することをお勧めします。したがって、これの代わりに:

document.getElementById('something').addEventListener('mousedown', doStuff);

function doStuff(event) {
    var foo = event.target.getAttribute('foo');
    console.log("doing stuff with " + foo);
    doMagic(foo);
}

あなたはそれをしたいでしょう:

document.getElementById('something').addEventListener('mousedown', function (event) {
    var foo = event.target.getAttribute(foo);
    doStuff(foo);
});

function doStuff(foo) {
    console.log("doing stuff with " + foo);
    doMagic(foo);
}

(これがあなたのケースに当てはまるかどうかはわかりませんが、これは一般的なコメントと考えてください。)

于 2013-07-31T09:15:23.203 に答える