繁体   English   中英

在JavaScript中使用全局引用是一种好习惯吗?

[英]Is it a good practice to use global references in JavaScript?

例如,JavaScript代码为:

function a() {  
    this.Foo = function() {//...}
}  

我通常要做的是创建一个全局引用:

_a = new a();

然后在正文或其他脚本区域中的任意位置使用它:

_a.Foo()

这是好事还是坏事? 还是有更好/更专业的方法来做到这一点?

通常,JavaScript开发人员会尝试避免这种情况,因为在全局范围内,不同的库可能会相互冲突。 为了避免这种情况,请考虑(如果可能的话)使用所谓的闭包为变量创建私有作用域。 看起来像这样:

(function() {
    _a = new a();
})();

内部函数内部声明的所有内容对于外部函数均不可见。

如果出于某种原因不能使用闭包,则可以选择为变量创建“命名空间”。

var MyCompany = { };
MyCompany.MyLibrary = { };
MyCompany.MyLibrary._a = new a();

这样,您就可以将代码限制为获取单个全局名称(MyCompany),而其他变量和方法则驻留在该命名空间中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM