1

私が作成しているウェブサイトのために、私が取り組んでいる、むしろ開始しているプログラムがあります。このプログラムは、JavaScript (および jQuery) ゲームを使用した HTML5 Canvas です。これを行うには、ユーザーがキャンバスのどこをクリックしたかを知る必要があります。私はこのようにすることができます:

mouse = new Object();
mouse = {
   //Assign Temp Values 
   x: 0,
   y: 0,
   click: function(event) {
       //Code to get location and assign to mouse.x and mouse.y then handle click
   }
};

$(document).ready(function() {
    $('#canvas').click(function(evt) {mouse.click(evt);}); 
});

または、次のようにすることもできます。

mouse = new Object();
mouse = {
    x: 0,
    y: 0
}

$(document).ready(function() {
    $('#canvas').click(function(evt) {
        //Code here to get location and assign to mouse.x and mouse.y and then handle click
    });
});

この場合、後者の方がコードが少ないことを知っており、他の言語でこのような質問を見たことがありますが、イベント処理のメソッドまたは JavaScript の別の関数を使用する利点があるかどうか疑問に思っていました。たとえば、優れたプログラミング手法、より効率的、または読みやすいものなどです。任意の入力をいただければ幸いです。

4

2 に答える 2

0

パフォーマンスに関しては、メソッド呼び出しが 1 つ少ないため、2 番目の方法の方がわずかに高速ですが、大きな違いはありません。

http://jsperf.com/method-vs-callback

于 2012-05-23T02:04:10.813 に答える
0

私にとって唯一重要なことは、メソッドを使用する場合this、メソッドが呼び出されたオブジェクトに設定されるということです。ただし、ブラウザーによってはthis、イベント ハンドラーに渡されるより有用な値が含まれている場合があります。いつでもメソッドに渡すことができますが、代わりに関数を使用すると、の値はthis関数本体内で変更されずに使用できます。

于 2012-05-23T00:47:52.507 に答える