我尝试用谷歌搜索答案,但问题是我真的不知道如何解决这个问题,我只是找到了错误的主题。
有什么区别:
this.on('click',thisismyfunction );
和:
this.on('click', function(){
thisismyfunction();
});
我尝试用谷歌搜索答案,但问题是我真的不知道如何解决这个问题,我只是找到了错误的主题。
有什么区别:
this.on('click',thisismyfunction );
和:
this.on('click', function(){
thisismyfunction();
});
一个显着的区别:第一个函数将直接传递一个事件对象,可以通过您命名的第一个参数thisismyfunction
或 at 访问arguments[0]
。在第二个版本中,该对象将被传递给外部匿名函数。
此外,在这两个示例中,都没有立即调用任何内容。您将两个函数(第一种情况下的命名函数,或第二种情况下的匿名函数)绑定为事件处理程序,因此它们将在相关事件发生后被调用。
您使用哪一种主要取决于代码结构和风格。正如 bennett_an 所说,当您将同一个函数绑定到多个事件时,最好使用第一个变体。
一种是命名函数。关键是您可能会从多个地方多次调用该函数。另一个是匿名函数。这基本上就像说“执行以下操作:”
函数:JavaScript 中的函数可以是命名的,也可以是匿名的。可以使用 function 关键字定义命名函数,如下所示:
function named(){ // do some stuff here }
匿名函数可以以与普通函数类似的方式定义,但它没有任何名称。
可以将匿名函数分配给变量或传递给方法,如下所示。
var handler = function (){ // do some stuff here }
JQuery 非常频繁地使用匿名函数,如下所示:
$(document).ready(function(){ // do some stuff here });
真的没什么。
第一个示例将thisismyfunction
直接绑定到。第二个示例将绑定到一个匿名函数,然后在调用thisismyfunction()
时调用该函数。
thisismyfunction 不会收到任何参数。您将其嵌入匿名函数的方式。
在您的示例中,结果可能没有区别。但是这两种方法的行为确实略有不同:
第一个例子:
this
在你的函数里面是指点击的元素第二个例子
this
你的函数里面是指匿名函数所以你使用哪种风格取决于你自己的喜好和你想要达到的效果