你用这个有点把它钉在了头上:
ThisFunction.* 显示的唯一函数是底部返回的函数
这是语言的预期和有目的的功能。
简短的回答:你必须从闭包中返回任何你想从外部访问的东西......这可能是 a 变量,或者它可能是一个 api,它本身可以访问 a 变量,同时保持它对外部的私有。这称为词法作用域,它是您的朋友。
示例时间:
var ThisFunction = (function() {
var a = { navigator: "woot" };
var b = function() {
return a;
}
});
ThisFunction.a; //a is null/undefined on the returned
ThisFunction.b; //b is defined yay
var aOUTSIDE = ThisFunction.b();
aOUTSIDE.navigator; // "woot"
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Closures
因此,唯一能在 A 得到的东西是那些在与 a 相同的“范围”内变化的东西。因此,要么将 A 返回范围之外,要么从范围内返回提供 API 以获取 A 或执行 A 的某些内部的东西......