第一个问题:为什么要写成字符串连接的形式。
如果elementID + "'," + final_x + "," + final_y + "," + interval这4个参数不是全局变量,你这样写setTimeout("moveElement(elementID,final_x,final_y,interval)",interval);那么会 报错,因为找不到这样的全局变量。而上面那样拼接的话是找之前的方法内的变量就可以了。
第二个问题:‘elementID’ 为什不加么要加单引号,其实就是指定他是个字符串而已。
如果elementID真是个字符串,不是数字,那么你直接写不加引号的话会报错,这个是javascript的语法。如果是数字则没什么影响。
单引号和双引号都是javascript指定字符串的符号。
substring()
用法:<字符串对象>.substring(<始>[,
<终>])
返回原字符串的子字符串,该字符串是原字符串从<始>位置到<终>位置的前一位置的一段。<终>
-
<始>
=
返回字符串的长度(length)。
如果没有指定<终>或指定得超过字符串长度,则子字符串从<始>位置一直取到原字符串尾。
eg--->abcdefghijk.substring(10,6)
得到的是ghij
如果所指定的位置不能返回字符串,则返回空字符串。
如果使用这样的形式:
setTimeout("moveElement()",interval);
那么moveElement()将是作为一个13个字符的字符串,而不是作为它所代表的函数值本身。所以必须先用引号结束前面的字符串,然后用加号连接moveElement()所代表的函数值。