我正在制作一个我正在制作的网站,而不是开始。该程序是一个带有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中使用事件处理方法或单独函数是否有任何优势。例如:一个是良好的编程习惯,或者更高效,甚至更容易阅读。任何意见都将不胜感激。
答案 0 :(得分:0)
对我来说唯一重要的是:如果你使用一个方法,那么this
被设置为调用该方法的对象。但是,根据浏览器的不同,this
可能会有更多有用的值进入事件处理程序,这样可以保留。您总是可以将它传递给方法,但是如果您使用函数,则this
的值在函数体内可以保持不变。
答案 1 :(得分:0)
性能方面,第二种方法稍微快一点,因为你少了一个方法调用,但没有显着差异。