Heim > Fragen und Antworten > Hauptteil
function getData() {
var data = new Array();
for (var i=0; i<list.length; i++) {
var city_text = list[i].firstChild.nodeValue;
var city = city_text.substring(0,2); //截取字符串,从0到2,但不包括2.
var num = list[i].lastChild.innerHTML;
data[i] = [city,num];
}
alert(data.length); //7
return data;
}
alert(data.length); //data is not defined
Bereitsreturn data
了,外部的data
Warum kann es nicht aufgerufen werden?
仅有的幸福2017-05-19 10:43:05
你所说的data是定义在getData方法中的一个局部变量,在外面是不能使用的,你可以使用一个变量接受返回值var myData =getData()
PHP中文网2017-05-19 10:43:05
前面只是定义了函数getData,但没有调用;
调用的话需要用一个变量接收返回值,如:
var datas = getData();
data是函数中的局部变量,在函数外部不能访问。外部访问的其实是在外部定义的data变量,外部没有定义时,就提示not defined;
getData函数中使用的list,函数里面没有定义,应该是在函数外定义的,最好改成函数参数:
function getData(list){
...
}
调用:
var datas = getData(list);
另外,在外部有list变量的情况下,getData的参数也是list,在函数内部使用的是参数list,而不是外部的变量list。
为了区分可以把参数改成不一样的,如:
function getData(listParam){
... // 函数内部使用listParam代替list
}
调用不变:
var datas = getData(list);
调用时使用的参数是外部的变量list,执行的时候把list赋值给listParam,在函数内部用listParam表示传递给函数的参数
我想大声告诉你2017-05-19 10:43:05
因为你的data是在函数内用var申明嗯,是函数的局部变量,不可以在函数外直接调用,虽然你可以通过> return 的方式将data的数据返回出去,但是你在外边调用该函数时就得设置一个变量接受返回值