我有一个小的javascript,它有一个全局声明的数组。该数组的值填充在函数foo()
中,如下所示:
<html>
<head></head>
<body>
<script>
var myArray = [];
function foo() {
var j = 5;
for (var i = 0; i < j; i++) {
myArray.push(i+1);
}
}
function bar() {
alert(myArray);
}
</script>
</body>
</html>
当我尝试在另一个javascript函数bar()
中访问该数组时,数组的值为null。我该如何解决这个问题?
答案 0 :(得分:1)
您已定义该功能但从未调用过它。
尝试像这样调用foo()
和bar()
var myArray = [];
function foo() {
var j = 5;
for (var i = 0; i < j; i++) {
myArray.push(i+1);
}
}
function bar() {
alert(myArray);
}
foo();
bar();
答案 1 :(得分:1)
如果你打算直接打电话给bar()。
<script>
function foo(myArray) {
var j = 5;
for (var i = 0; i < j; i++) {
myArray.push(i+1);
}
return myArray;
}
function bar()
{
alert(foo([]));
}
bar();
// or
alert(foo([]));
</script>
尽量避免使用尽可能多的全局变量,