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
Sudahreturn data
了,外部的data
Mengapa ia tidak boleh dipanggil?
Data yang anda maksudkan ialah pembolehubah tempatan yang ditakrifkan dalam kaedah getData dan tidak boleh digunakan di luar Anda boleh menggunakan pembolehubah untuk menerima nilai pulangan
var myData =getData()
Anda perlu mendapatkan nilai dengan getData sebelum anda boleh menggunakannya.
Fungsi getData baru sahaja ditakrifkan sebelum ini, tetapi tidak dipanggil
Jika dipanggil, pembolehubah perlu digunakan untuk menerima nilai pulangan, seperti:
var datas = getData();
data ialah pembolehubah tempatan dalam fungsi dan tidak boleh diakses di luar fungsi. Akses luaran sebenarnya adalah pembolehubah data yang ditakrifkan secara luaran, ia akan digesa tidak ditakrifkan
Senarai yang digunakan dalam fungsi getData tidak ditakrifkan dalam fungsi, jadi ia harus ditakrifkan terbaik untuk menukarnya kepada parameter fungsi:
fungsi getData(senarai){
}
Panggil:
var datas = getData(senarai);
Selain itu, apabila terdapat pembolehubah senarai luaran, parameter getData juga merupakan senarai senarai parameter digunakan di dalam fungsi, bukan senarai pembolehubah luaran.
Untuk membezakan, anda boleh menukar parameter kepada yang berbeza, seperti:
fungsi getData(listParam){
}
Panggilan kekal tidak berubah:
var datas = getData(list
Parameter yang digunakan semasa membuat panggilan ialah senarai pembolehubah luaran Apabila melaksanakan, senarai ditetapkan kepada listParam, dan listParam digunakan di dalam fungsi untuk mewakili parameter yang diluluskan. kepada fungsi
Oleh kerana data anda diisytiharkan dengan var di dalam fungsi, ia adalah pembolehubah tempatan fungsi dan tidak boleh dipanggil terus di luar fungsi Walaupun anda boleh mengembalikan data data melalui > fungsi dari luar, anda mesti menetapkan pembolehubah untuk menerima nilai pulangan
...soalan ini.
Ia sepatutnya ditulis seperti ini di luar fungsi: alert(getDtata().length Untuk sebabnya, mari kita jelaskan asasnya dahulu.