2011-09-22 95 views

回答

8

其中一个Khan是全局变量“Khan”的名称,另一个是自执行函数内的变量,它等于。

var Khan = (function(){ 

    .... 

    var Khan = ... 

    .... 

})(); 

在源文件中的缩进是可怕的,你可能没有注意到....

+5

+1,荣誉提到了令人困惑的缩进。 – Jon

+0

@Jon - 我补充说。是啊....我同意 – Neal

+1

在我看来,这是不好的编码风格,为了不同的目的在相同的范围内重新定义相同的名称,因为它可以明显地导致混淆,并且没有编码好处与选择不同名称他们。 – jfriend00

2

变量包裹在匿名函数只有在该函数内部工作。

所以这应该工作正常。

<script type="text/javascript"> 
$(function(){ 
    var khan = (function(){ 
     var khan = //this should not be a problem and they both work, this will be only available in the function 
    }); 
}); 
</script>