why do we need to pass in window and undefined into this jquery plugin? [duplicate]

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?

Answers:

Answer

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);

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.