我正在阅读 jQuery 插件,在官方指南中作者指出:
“但是等等!我知道和喜爱的很棒的美元符号在哪里?它仍然存在,但是为了确保您的插件不会与可能使用美元符号的其他库发生冲突,最好将 jQuery 传递给 IIFE (立即调用函数表达式)将其映射到美元符号,因此在其执行范围内它不能被另一个库覆盖。”
这是示例代码:
(function( $ ) {
$.fn.myPlugin = function() {
// Do your awesome plugin stuff here
};
})( jQuery );
我的问题是,为什么 IIFE 是必要的,没有它可能会发生碰撞的一些例子是什么?执行时,$ 参数将被 Jquery 全局变量替换,因此 IIFE 正在更改全局变量。对我来说,这似乎表明碰撞的可能性和以前一样。我知道我在这里遗漏了一些东西。非常感谢您的帮助!