Javascript 访问IIFE函数变量

Javascript 访问IIFE函数变量,javascript,Javascript,我有一个这样定义和执行的函数 var exitPopup = (function($) { var someVar = false; var someFunc = function() { doSomething(); }; })(jQuery); 我的问题是,是否可以访问其中的变量和函数?如何调用someFunc而不修改上述代码(它是一个插件) 我会这样想 exitPopup.someFunc(); 但是是的,不…根据 IIFE是一种设计模式,也称为自执行匿名函数,包含两个主要部分

我有一个这样定义和执行的函数

var exitPopup = (function($) {
  var someVar = false;
  var someFunc = function() { doSomething(); };
})(jQuery);
我的问题是,是否可以访问其中的变量和函数?如何调用
someFunc
而不修改上述代码(它是一个插件)

我会这样想

exitPopup.someFunc();
但是是的,不…

根据

IIFE是一种设计模式,也称为自执行匿名函数,包含两个主要部分。第一个是匿名函数,其词法范围包含在分组运算符()中这会阻止访问IIFE习惯用法中的变量,并污染全局范围。


所以,不,它不能被访问。

这是一种生活,所以我认为你不能访问这些变量中的任何一个。不,我认为你不能在那个确切的例子中访问,你不能。但是许多插件提供了扩展它们的方法,例如使函数在window的属性或环境中的任何全局属性上可用。这段代码似乎是为了防止您访问这些变量而编写的……立即调用函数表达式的目的(
(function(){…})(
)是为了保护内部的代码,并且不向父作用域(例如窗口)公开变量。