Ada sesuatu yang saya tidak begitu faham Kali ini saya melihat sekeping kod yang menerangkan masalah dengan baik:
function moveElement (elementID, final_x, final_y, interval) {
var elem = document.getElementById(elementID);
var xpos = parseInt(elem.style.left);
var ypos = parseInt(elem.style.top);
......
var repeat = "moveElement('"+ elementID +"',"+ final_x +","+ final_y +","+ interval +")";
movement = setTimeout(repeat, interval)
}
Saya hanya ada satu soalan:
var repeat = "moveElement('"+ elementID +"',"+ final_x +","+ final_y +","+ interval +")";
Dalam perenggan ini, elementID
,final_x
,final_y
,interval
empat parameter dimasukkan. Kecuali yang pertama iaitu rentetan, tiga yang terakhir ialah semua nombor.
Perkara pertama yang saya tidak faham ialah mengapa parameter ini perlu disertakan dalam sebut harga Perkara kedua yang saya tidak faham ialah apa yang tanda tambah lakukan di sini. Soalan lain ialah mengapa rentetan ini seperti elementID
disertakan dalam petikan berganda Dalam keadaan apakah ini perlu?
Secara amnya, saya rasa tanda tambah sesuai untuk penyambungan rentetan, tetapi ini jelas tidak berlaku di sini Sepasang tanda petikan adalah ruang bebas Apakah maksud tanda tambah yang dibalut di dalamnya?
1. Petikan disertakan dalam koma
2.123456+"somestring"→"123456somestring"
3.elementId ialah parameter jenis String, jadi tambahkan petikan
Pembolehubah akhirnya ditukar kepada rentetan! Nombor + tanda petikan menukar aksara Jika parameter yang anda perlukan ialah rentetan dan bukannya nombor
Rentetan di sini adalah bersamaan dengan penggunaan eval dalam setTimeout, yang merujuk kepada rentetan kod yang anda mahu laksanakan selepas kelewatan milisaat
Pertama sekali, tanda tambah di sini memang digunakan untuk penyambungan tali
Hasilialah
Hanya lulus pembolehubah rentetan bernama ulang sebagai parameter kepada setTimeout, iaitu, selepas selang milisaat, ulangan akan dilaksanakan
Ini sebenarnya pada asasnya sama dengan
Sepatutnya ini lebih mudah difahami, bukan?
Walau bagaimanapun, masih terdapat perbezaan antara kedua-dua kaedah ini Secara amnya, kaedah yang disebut oleh penyoal tidak disyorkan untuk butiran, lihat window.setTimeout, Running string sebagai fungsi dalam javascript setTimeout?