JS函数的参数首尾带加号是什么意思?

为什么后面调用moveElement函数时这四个参数首尾要带加号啊? 这四个参数之前设定时并没有加双引号和加号啊。谢谢解答。
function moveElement( elementID, final_x , final_y , interval ){
.......
.......
var a = "moveElement('"+elementID+"' , "+final_x+" , "+final_y+" , "+interval+")";
br = setTimeout( a , interval );
}

阅读 4.1k
2 个回答
var a = "xxxxxxxx" + var1 + "xxxxxxxxxxxx" + var2 + "zzzzzzzzzzz";

这个看得懂嘛,就是拼接字符串,所以你那段代码里拼出来大概像这样(内容取决于变量的值)

var a = "moveElement('someId', 70, 80, 1000)";

拼出来这个字符串的目的是为了给 setTimeout 作为第一个参数用。setTimeout 的第一个参数是字符串的话,会当作代码来执行。但是建议第一个参数给个函数,所以你提出来这个问题中的代码最好是改成:

// 建议变量名采用 camel 命名规则,所以顺便给你改了下
function moveElement(elementId, finalX, finalY, interval) {
    // ......
    setTimeout(function() {
        moveElement(elementId, finalX, finalY, interval);
    }, interval);
}

var a=... 是为了拼接字符串。

setTimeout('字符串;', 100);

例子:

setTimeout('alert(\'a\');', 100);

建议使用:

setTimeout(function(){
    alert('a');
},100);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题