如何在面向对象的javascript函数中更好地定义全局变量



假设我有一个函数:

function test(){
//should I define global variable here
//like window.arr=new Array()?
}
//can I define here
//window.arr=new Array()?
test.prototype.method01=function(){
//or here:window.arr=new Array()?
}

在以上三种方法中,哪一种更好?

如果它是全局的,那么您很可能希望在函数之外定义它。这是因为如果它是全局的,您希望任何/所有函数都可以访问它。

JavaScript是在它进入时被解释的。如果你在函数外定义它,它将在被解释时被声明,如果它在函数内被调用,它将被声明为函数被调用。

全局变量通常是个坏主意。你能做的最好的事情就是尽量减少它的影响。创建一个全局变量,该变量将成为您的应用程序容器,例如:


var APP = {};
APP.my_array = [];

我建议您检查JavaScript:TheGoodParts

您可以定义全局变量,以上情况都可以。

但最大的区别是,你必须调用函数才能获得数组

除了第二种情况。

如果你要定义一个全局变量(一开始有点可疑,甚至全局变量都应该有名称空间),不要把它放在难以追踪的地方——保持它在顶级,不受影响,这样很容易发现。

相关内容

  • 没有找到相关文章

最新更新