为什么可以';我不能访问这个JavaScript代码中的全局变量吗?
在下面的代码中,我无法从函数中访问“颜色”,但我可以访问“numColors”。getColors()函数似乎正确地设置了数组,但init()函数无法访问它,如alert语句结果所示 可以使用参数字符串调用该页面,如“?colors=0000FF | FF0000”为什么可以';我不能访问这个JavaScript代码中的全局变量吗?,javascript,global-variables,Javascript,Global Variables,在下面的代码中,我无法从函数中访问“颜色”,但我可以访问“numColors”。getColors()函数似乎正确地设置了数组,但init()函数无法访问它,如alert语句结果所示 可以使用参数字符串调用该页面,如“?colors=0000FF | FF0000” (功能(){ var颜色=[]; 新颜色变种; document.addEventListener(“DOMContentLoaded”,init,false); 函数init(){ colors=getColors() 警报(n
(功能(){
var颜色=[];
新颜色变种;
document.addEventListener(“DOMContentLoaded”,init,false);
函数init(){
colors=getColors()
警报(numColors);
警报(颜色);
}
函数getColors(){
var data=getURLParameter('colors');
var list=data.split(“|”);
对于(i=0;i
getColors
在运行时修改colors
,然后使用getColors()
的返回值覆盖colors
,该值(因为它缺少return
语句)是未定义的
删除分配:
function init() {
getColors()
或者更改getColors
,使其使用局部变量然后返回 getColors
在运行时修改colors
,然后使用getColors()
的返回值覆盖colors
,该返回值(因为它缺少return
语句)是未定义的
删除分配:
function init() {
getColors()
或者更改getColors
,使其使用局部变量然后返回 您的init()
函数不应该是
function init() {
getColors();
alert(numColors);
alert(colors);
}
您正在将colors
设置为getColors
函数的返回值。但是,您不返回值,因此colors
将设置为undefined
您的init()
函数不应该
function init() {
getColors();
alert(numColors);
alert(colors);
}
您正在将colors
设置为getColors
函数的返回值。但是,您不返回值,因此colors
将被设置为undefined
您的getColors()函数没有返回任何内容,但您在说:
colors = getColors();
我想如果你打电话给我,这会有用的:
getColors();
getColors()函数没有返回任何内容,但当您说:
colors = getColors();
我想如果你打电话给我,这会有用的:
getColors();
当您发出警报(颜色)
时会发生什么?您所说的“从警报语句结果中看到”是什么意思?你看到了什么?注意:颜色
和numColors
不是全局变量,而是闭包变量。当你警报(颜色)
时会发生什么?你说的“警报语句结果所见”是什么意思?你看到了什么?注意:颜色
和numColors
不是全局变量,而是闭包变量。