javascript函数的参数为复杂的字符串

比如定义了一个函数:functionmoveElement(elementID,final_x,final_y,interval),其中第一个参数为字符串,后面三个位整数... 比如定义了一个函数:function moveElement(elementID,final_x,final_y,interval),
其中第一个参数为字符串,后面三个位整数,然后在函数内部递归调用:
var repeat = "moveElement('" + elementID + "'," + final_x + "," + final_y + "," + interval + ")"; movement = setTimeout(repeat,interval);

我的问题是为什么参数repeat要写成字符串连接的形式,不能直接写成:
setTimeout("moveElement(elementID,final_x,final_y,interval)",interval);
在没有参数时不时就可以这样调用吗:
setTimeout("moveElement()",interval);
而且为什么还非要有‘elementID’这样的格式,来指定它是字符串呢?
展开
 我来答
乌微月2S
2012-09-12 · TA获得超过5037个赞
知道大有可为答主
回答量:5361
采纳率:42%
帮助的人:2975万
展开全部
第一个问题:为什么要写成字符串连接的形式。
如果elementID + "'," + final_x + "," + final_y + "," + interval这4个参数不是全局变量,你这样写setTimeout("moveElement(elementID,final_x,final_y,interval)",interval);那么会 报错,因为找不到这样的全局变量。而上面那样拼接的话是找之前的方法内的变量就可以了。
第二个问题:‘elementID’ 为什不加么要加单引号,其实就是指定他是个字符串而已。
如果elementID真是个字符串,不是数字,那么你直接写不加引号的话会报错,这个是javascript的语法。如果是数字则没什么影响。
单引号和双引号都是javascript指定字符串的符号。
创作者u1a0qDkzLU
2020-02-09 · TA获得超过3.1万个赞
知道大有可为答主
回答量:1.3万
采纳率:35%
帮助的人:992万
展开全部
substring()
用法:<字符串对象>.substring(<始>[,
<终>])
返回原字符串的子字符串,该字符串是原字符串从<始>位置到<终>位置的前一位置的一段。<终>
-
<始>
=
返回字符串的长度(length)。
如果没有指定<终>或指定得超过字符串长度,则子字符串从<始>位置一直取到原字符串尾。
eg--->abcdefghijk.substring(10,6)
得到的是ghij
如果所指定的位置不能返回字符串,则返回空字符串。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
全视弗里曼
推荐于2016-03-09 · TA获得超过4181个赞
知道大有可为答主
回答量:3378
采纳率:0%
帮助的人:2902万
展开全部
如果使用这样的形式:
setTimeout("moveElement()",interval);

那么moveElement()将是作为一个13个字符的字符串,而不是作为它所代表的函数值本身。所以必须先用引号结束前面的字符串,然后用加号连接moveElement()所代表的函数值。
更多追问追答
追问
我大概明白你的意思了,不过通过测试如果没有参数,像上面那样是可以的,请问这个怎么理解?
还有就是为什么elementID要用单引号括起来,而不直接"moveElement(“ + elementID + ”," + ...这样呢?
追答
函数有一些参数在为空时是可以省略的;

单引号的问题,举个例子你就会明白,例如当elementID的值为abc时,调用函数时应该效果是:moveElement('abc',......)
但如果没有单引号,就成了:
moveElement(abc,......)
也就是说moveElement()函数的第一个参数应该是字符串类型,所以需要加单引号。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式