假设我有一个函数:
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
您可以定义全局变量,以上情况都可以。
但最大的区别是,你必须调用函数才能获得数组
除了第二种情况。
如果你要定义一个全局变量(一开始有点可疑,甚至全局变量都应该有名称空间),不要把它放在难以追踪的地方——保持它在顶级,不受影响,这样很容易发现。