这是:
($.fn.myFunc = function() {
var Dennis = function() { /*code */ }
$('#Element').click(Dennis);
})();
Run Code Online (Sandbox Code Playgroud)
相当于:
($.fn.myFunc = function() {
$('#Element').click(function() { /*code */ });
})();
Run Code Online (Sandbox Code Playgroud)
如果没有,有人可以解释差异,并建议更好的路线,性能,功能重用和阅读清晰度.
谢谢!
唯一的区别是前者提供了对函数的引用.
因此,你可以这样做:
($.fn.myFunc = function() {
var Dennis = function() { /*code */ }
$('#Element').click(Dennis);
Dennis();
})();
Run Code Online (Sandbox Code Playgroud)
后者无法做到这一点.
这可能很有用.例如,我可能希望单击操作页面的一部分,但我也想在页面加载时执行此操作.我可以这样做:
$(function(){
var manipulateSomething = function() {
// do stuff
};
// do it on click
$("#Element").click(manipulateSomething);
// and do it right now (document.ready)
manipulateSomething();
});
Run Code Online (Sandbox Code Playgroud)
(旁白:$("#Element").click();除非你想要点击所有点击处理程序,否则你不会打电话来完成这个#Element.)