假设我有一个功能:
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()?
}
在上述三种方式中哪一种更好?
答案 0 :(得分:1)
如果它是全局的,你很可能想要在函数之外定义它。这是因为如果它是全局的,您希望任何/所有函数都可以访问它。
JavaScript被解释为它的来源。如果你在函数之外定义它,它将被声明为被解释,如果在函数内部调用它,它将被声明为函数被调用。
答案 1 :(得分:1)
一般来说,全局变量都是坏主意。你能做的最好的事情是尽量减少它的影响。创建一个全局变量,该变量将成为应用程序容器,例如:
var APP = {};
APP.my_array = [];
答案 2 :(得分:0)
您可以定义全局变量,上面的情况都很好。
但最大的区别是你必须调用函数才能拥有该数组
除了第二种情况。
答案 3 :(得分:0)
如果你要定义一个全局变量(开头有点可疑,甚至全局变量应该是命名空间的)不要在难以追踪的地方做它 - 保持在顶层,没有缩进,所以很容易发现。