变量引入,引号,加号的使用问题

jianweisummer 2017-05-13 10:34:16
我一直有一个地方不是很理解,这次看到一段代码很能说明问题:

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四个是传入的参数,除了第一个是字符串,后面三个都是数字。

我第一个不能理解的地方是这些参数为什么要加引号,第二个不能理解的是这里的加号有什么作用么。还有一个问题是像`elementID`这个字符串,为什么包了两层引号,在什么情况下需要这么做?

加号一般我认为适用于字符串拼接,但在这里显然不是这样,一对引号就是一个独立的空间,加号包裹在这里面有什么意义么。
...全文
969 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
文盲老顾 2017-05-16
  • 打赏
  • 举报
回复
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)
    movement = setTimeout(function(){moveElement(elementID,final_x,final_y,interval);},interval);
}
sanGuo_uu 2017-05-16
  • 打赏
  • 举报
回复
repeat是在拼接字符串啊。 大引号是在拼接字符串,小引号是参数(你的函数moveElement里面的str类型的参数要用引号括起来,不然JS会以为这是个变量,而你大引号已经在外面用了,所以只能用小引号)。 repeat是作为一个function传到setTimeout里的
xiaojunjor 2017-05-16
  • 打赏
  • 举报
回复
别想得太复杂
yu-le 2017-05-15
  • 打赏
  • 举报
回复
setTimeout 的第一个参数是调用该函数后要执行的JavaScript代码串,repeat就是一个代码串
xuzuning 2017-05-14
  • 打赏
  • 举报
回复
你把 repeat 打印出来就知道了
  • 打赏
  • 举报
回复
http://ask.csdn.net/questions/384738

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧