访问模块变量在JavaScript模块

问题描述:

我有一个简单的JavaScript模块如下:访问模块变量在JavaScript模块

var QCH = (function($jquery, undefined) { 

     var QCH = { }; 
     var someDivId; 

     QCH.Init = function(someDivId) { 
       someDivId=someDivId; 
     }; 
     return QCH; 
}($)); 

上面的代码不起作用。 someDivId与模块变量和本地初始化变量具有相同的名称。 在C#中,我们可以使用this.someDivId指向模块(类)变量。有没有办法指向JS中的模块变量?

我知道我可以更改名称模块变量,并使用例如资本案例来区分它与本地,但我想知道是否有更好的方法吗?

你不能。你将不得不重新命名其中的一个。您在外部作用域中映射了someDivId,其中一个作用于内部作用域,JavaScript在解析标识符时忽略了作用域链的一个元素(我知道)。