2017-04-06 10 views
4

コールバックをaddEventListenerに渡す方法を決定する際には、次の方法を考慮して、どうすればよいですか?コールバックをaddEventListenerに渡す方法を決定する際に考慮すべき点は何ですか?

element.addEventListener('click', function(){ 
    // ... 
}); 

又は

function doSomething(){ 
    // ... 
} 
element.addEventListener('click', doSomething); 

又は

element.addEventListener('click', function doSomething(){ 
    // ... 
}); 
+1

は私見彼らはユースケースの両方を持っているので、この質問は非常に意見に基づく答えを引き付ける可能性があります。時にはそれを使うのが理にかなっています。主にイベントハンドラの機能を再利用するときは、名前付き関数(コードの重複なし)を使用する方が面白いです。しかし、実際にはあなたのコードとあなたの背後で使用しているフレームワークによって異なります。 – Icepickle

+0

名前付き関数をスタックトレースで簡単に識別できるように、名前付き関数を使用する方が常に匿名関数を使用する方が優先されます。 –

+0

@Icepickleそれぞれのユースケースをいくつか挙げてください。私はそれを感謝します:) – veteri

答えて

1

最初のコードスニペットでは、無名関数が使用されています。あなたがコールバック関数に無名関数を使用しないでくださいいくつかの理由リストTodd Motto has written an article

  • が簡単に
  • の役割を記述しないでくださいテストすることはできません

    • をデバッグすることがより困難であるが、再利用することはできません。関数
    • コードが不足している構造を作る
    • メッシュ/不明瞭なコードを作成する
    • ドキュメントが苦しむことになる(JSDocのようなもの)
  • +1

    ありがとうございます。私は名前付きの機能を続けるようです。 – veteri

    +0

    zxxzありがとうございます。また、これらのタイプのベストプラクティスを遵守すれば、コメントコードは不要になります。 – totallytotallyamazing

    1

    anonymous function呼ばれる最初の方法。私は本当にあなたがしなければならないやり方があるとは言いませんが、あなたは通常、それらを使用して、あなたのコード作成を膨らませたくない、本当にシンプルな論理を作り出しています。のための新しいブロック。

    コードをデバッグする必要がある場合や、関数内でコードを再利用したい場合は、名前付き関数を作成する方がより快適です。

    関連する問題