如何在不删除 javascript 中的 var 的情况下将对象设为 public

How to make the object as public without removing var in javascript

(function(){
    var a = {};
    a.b = function(){
        alert('this is b');
    }
}());

如何在不删除 'var' 的情况下在上面的代码中将 'a' 对象设为 public,这意味着 'a' 甚至可以从另一个文件访问,例如下面.

(function(){
    a.b();
}());

注意:不要说删除 'var',我知道那样。但我想要的是他们不删除 'var'.

的任何其他方式

您可以将其附加到全局范围。在网络浏览器中,这是 window 对象。

window.a = {};

稍后,您可以通过 window.aa 引用它。

这通常是不鼓励的,因为当两个不起眼的脚本 运行 定义相同的东西时可能会发生冲突。将你需要的任何东西包裹在闭包中会好得多。

您可以 return a 来自 IIFE:

var a = (function(){
    var a = {};
    a.b = function(){
        alert('this is b');
    }
    return a;
}());

或创建一个 属性 到 window:

(function(){
    var a = {};
    a.b = function(){
        alert('this is b');
    }
    window.a = a;
}());