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
已經return data
了,外部的data
為何無法呼叫呢?
仅有的幸福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的數據返回出去,但是你在外邊調用該函數時就得設定一個變數接受返回值