为什么可以在"我认为什么是封闭"中访问变量?

hbr*_*rls 0 javascript closures

我有这样的代码:(并在jsfiddle http://jsfiddle.net/k6zNm/3/)

(function(){
    Marker = function(opts){
        var marker = this;
        marker.Version = "2012.Jul.06";
        marker.HelloWorld = function(){
            return marker.Version;
        }
    }
})();

window.mymarker = new Marker();
$("div#message").text(mymarker.HelloWorld());
Run Code Online (Sandbox Code Playgroud)

代码工作正常.但我认为这(function(){})();是一个封闭.为什么我可以访问Marker它.这不是对全球命名空间的污染吗?

Que*_*tin 5

你没有使用varMarker,所以它是一个全局变量,而不是作用于该函数.