为什么我们需要传入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);