Javascript 将函数用作回调还是存储它?
我能做到Javascript 将函数用作回调还是存储它?,javascript,function,Javascript,Function,我能做到 var element; // some html node element.addEventListener("click", function() { alert(1); }, false); 或者这个, var clickFunc = function() { alert(1); } element.addEventListener("click", clickFunc, false); 我做哪一个重要吗?我在互联网上读到了这两种方法的不同之处,我很难找
var element; // some html node
element.addEventListener("click", function() {
alert(1);
}, false);
或者这个,
var clickFunc = function() {
alert(1);
}
element.addEventListener("click", clickFunc, false);
我做哪一个重要吗?我在互联网上读到了这两种方法的不同之处,我很难找到原因。还有第三种选择:
function clickFunc() {
alert(1);
}
element.addEventListener("click", clickFunc, false);
这里的优点是,如果抛出异常,名称(“clickFunc”)将显示在堆栈跟踪中
如果您确实喜欢键入,也可以这样做:
var clickFunc = function clickFunc() {
alert(1);
};
或简称:
element.addEventListener("click", function clickFunc() {
alert(1);
}, false);
但是那些在较旧的浏览器中都有。就性能或功能而言,什么都没有,但是如果你想要任何可重用性,那么第二种选择就更好了
var clickFunc = function() {
alert(1);
}
element.addEventListener("click", clickFunc, false);
element1.addEventListener("click", clickFunc, false);
两者都在做同样的事情。只是使用匿名函数,您将无法调用removeListener。我个人更喜欢第二个选项。它更易于重用和测试,您还可以使用
removeEventListener
。在性能和功能方面没有任何区别 我认为在这种情况下没有任何区别。一个明显的优点是,您可以使用函数引用调用removeEventListener
。如果您有一个clickfunction要应用于不同的元素,第二个可能会很有帮助。你可以重用这个函数。我没有想到第三种选择,我想我会坚持你的第一个例子,这显然是最好的选择,谢谢你,这对我帮助很大。