国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

javascript - 變量引入,引號,加號的使用問題
PHPz
PHPz 2017-05-18 10:59:41
0
4
708

我一直有一個地方不是很理解,這次看到一段代碼很能說明問題:

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)
}

我的疑問只有一個地方:

var repeat = "moveElement('"+ elementID +"',"+ final_x +","+ final_y +","+ interval +")";

在這一段里,elementID,final_x,final_y,interval四個是傳入的參數(shù),除了第一個是字符串,后面三個都是數(shù)字。

我第一個不能理解的地方是這些參數(shù)為什么要加引號,第二個不能理解的是這里的加號有什么作用么。還有一個問題是像elementID這個字符串,為什么包了兩層引號,在什么情況下需要這么做?

加號一般我認為適用于字符串拼接,但在這里顯然不是這樣,一對引號就是一個獨立的空間,加號包裹在這里面有什么意義么。

PHPz
PHPz

學習是最好的投資!

全部回復(4)
洪濤

1.引號包住的是逗號
2.123456+"somestring"→"123456somestring"
3.elementId是String型參數(shù)所以加引號

滿天的星座

變量最后轉為字符串??!數(shù)字+引號 變字符穿 如果你需要的參數(shù)是字符串而不是數(shù)字

漂亮男人

這里的字符串在setTimeout里相當于eval的用法,是指你想要在delay毫秒之后執(zhí)行的代碼字符串

世界只因有你

首先,這里的加號的確是用來字符串拼接

var repeat = "moveElement('"+ elementID +"',"+ final_x +","+ final_y +","+ interval +")";

的結果就是

var repeat = "moveElement(elementID, final_x, final_y, interval)"

只是,將這個名叫repeat的字符串變量作為參數(shù)傳給了setTimeout, 即在interval毫秒后,執(zhí)行repeat

var repeat = "moveElement('"+ elementID +"',"+ final_x +","+ final_y +","+ interval +")";
movement = setTimeout(repeat, interval)

這里其實基本等同于

movement = setTimeout(function () {
    moveElement(elementID, final_x, final_y, interval)
}, interval)

這樣應該比較好理解吧?

但是這兩種方式還是有區(qū)別,一般不大推薦題主說的這種方式,具體可見window.setTimeout、Running string as function in javascript setTimeout?

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板