9

I'm looking at jquery resize plugin and can't understand certain things about how it works:

usually we only pass in Jquery object into jquery plugins, like this:

(function($){
    ....plugin code....
})(jQuery);

In "resize" plugin there are window and undefined objects being passed in:

(function($,window,undefined){
    ....plugin code....
})(jQuery,this);

IMHO - window is a global object anyway - why do we need to pass it in? the logic behind passing in undefined object I understand even less. I'm sure there's gotta be some reason for it - but I cannot think of any.

Can someone explain why is it being done?

Stann
  • 13,518
  • 19
  • 65
  • 73

1 Answers1

12

this is explained very well in this video.

basically, you can set those variables in the self invoking function to ensure they work as expected.

"the asshole effect" undefined = true; -paul irish

furthermore by passing these as arguments they can also be minified.

ie.

(function(A,B,C){
    ....plugin code....
})(jQuery,this);
David Wick
  • 7,055
  • 2
  • 36
  • 38