为什么我们需要传入window和undefined到这个jquery插件?

我正在查看jquery resize插件,无法理解它的工作原理:

通常我们只将Jquery对象传递给jquery插件,如下所示:

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

在“resize”插件中,有一个窗口和未定义的对象被传入:

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

恕我直言 – 窗口无论如何都是一个全球性的对象 – 为什么我们需要传递它? 传递未定义对象背后的逻辑我理解得更少。 我肯定有一些理由 – 但我想不出任何理由。

有人可以解释为什么要这样做?

这个video很好地解释了这一点 。

基本上,您可以在自调用函数中设置这些变量,以确保它们按预期工作。

“混蛋效应” undefined = true; – 爱尔兰语

此外,通过将这些作为参数传递,它们也可以缩小。

即。

 (function(A,B,C){ ....plugin code.... })(jQuery,this);