以下之间有什么区别:(有什么理由避免使用示例一吗?)
一:
$("#stuff").on("resize", function() { doThis(); });
$("#stuff").on("resize", function() { doThat(); });
二:
$("#stuff").on("resize", function() {
doThis();
doThat();
});
以下之间有什么区别:(有什么理由避免使用示例一吗?)
一:
$("#stuff").on("resize", function() { doThis(); });
$("#stuff").on("resize", function() { doThat(); });
二:
$("#stuff").on("resize", function() {
doThis();
doThat();
});
说白了,其实没什么区别。
在现实世界的代码中,
附加处理程序:
$("#stuff").on("resize.A", function() { doThis(); });
...
$("#stuff").on("resize.B", function() { doThat(); });
分离一个处理程序:
$("#stuff").off("resize.A");
保持连接的处理程序resize.B
(即doThis()
不会被调用但doThat()
会被调用)。
在您的第二个示例中,如果doThis()
引发异常则doThat()
不会运行。第一个例子不是这样。
唯一的区别是存储和执行两个不同的事件处理函数,其中第二个片段满足一个。
算一下,第二个片段更优雅。我不会开始谈论性能,但是如果我们以这种方式绑定“数百个”方法,那么显然您不想绑定多个处理程序。
第二个会更好一点。
在第一个示例中,当 resize 事件触发时,您有两个函数调用的开销(除了对 doThis 和 doThat 的调用)。在第二个示例中,您只调用了一个事件处理程序。