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

我想到的唯一重要的事情是:如果您使用方法,则将this其设置为调用该方法的对象。但是,根据浏览器的不同,this可能会有更有用的值进入事件处理程序,这将是很好的保留。你总是可以将它传递给方法,但是如果你使用一个函数,this那么函数体内的值是不变的。

于 2012-05-23T00:47:52.507 回答
0

性能方面,第二种方法稍微快一些,因为您少了一个方法调用,但没有显着差异。

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

于 2012-05-23T02:04:10.813 回答