Rumah > Soal Jawab > teks badan
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?
PHP中文网2017-05-18 11:01:41
1. Petikan disertakan dalam koma
2.123456+"somestring"→"123456somestring"
3.elementId ialah parameter jenis String, jadi tambahkan petikan
滿天的星座2017-05-18 11:01:41
Pembolehubah akhirnya ditukar kepada rentetan! Nombor + tanda petikan menukar aksara Jika parameter yang anda perlukan ialah rentetan dan bukannya nombor
漂亮男人2017-05-18 11:01:41
Rentetan di sini adalah bersamaan dengan penggunaan eval dalam setTimeout, yang merujuk kepada rentetan kod yang anda mahu laksanakan selepas kelewatan milisaat
世界只因有你2017-05-18 11:01:41
Pertama sekali, tanda tambah di sini memang digunakan untuk penyambungan tali
var repeat = "moveElement('"+ elementID +"',"+ final_x +","+ final_y +","+ interval +")";
Hasil ialah
var repeat = "moveElement(elementID, final_x, final_y, interval)"
Hanya lulus pembolehubah rentetan bernama ulang sebagai parameter kepada setTimeout, iaitu, selepas selang milisaat, ulangan akan dilaksanakan
var repeat = "moveElement('"+ elementID +"',"+ final_x +","+ final_y +","+ interval +")";
movement = setTimeout(repeat, interval)
Ini sebenarnya pada asasnya sama dengan
movement = setTimeout(function () {
moveElement(elementID, final_x, final_y, interval)
}, interval)
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?