想问一下关于JS里面的return true的问题。

代码如下:
function positionMessage() {
if (!document.getElementById) return false;
if (!document.getElementById("message")) return false;
var elem = document.getElementById("message");
elem.style.position = "absolute";
elem.style.left = "50px";
elem.style.top = "100px";
movement = setTimeout("moveMessage()",5000);
}
function moveMessage() {
if (!document.getElementById) return false;
if (!document.getElementById("message")) return false;
var elem = document.getElementById("message");
var xpos = parseInt(elem.style.left);
var ypos = parseInt(elem.style.top);
if (xpos == 200 && ypos == 100) {
return true;
}
if (xpos < 200) {
xpos++;
}
if (xpos > 200) {
xpos--;
}
if (ypos < 100) {
ypos++;
}
if (ypos > 100) {
ypos--;
}
elem.style.left = xpos + "px";
elem.style.top = ypos + "px";
movement = setTimeout("moveMessage()",10);
}
很简单的移动元素的函数,第一个里面的return false我明白是返回false,令函数不再执行下去,但第二个函数里面 if (xpos == 200 && ypos == 100) ,即到达目的位置的return true不明白为何?到达目的地了不应该是停止函数不再执行了吗?为何要返还true值呢?之前遇到不少return true的情况,返还true不就是让函数值恒为true一直执行吗?

return什么值和这个函数是否一直执行没有关系。

return的作用是返回函数处理后得到的值,然后在调用函数的位置去使用。比如:
function sqr(x){ //这个是个平方函数
return x*x;

}
alert(sqr(5));//这里调用了sqr函数,返回的值是5的平方

如果你的函数并没有用到返回值,那么返回什么东西没有关系,只是给自己看看,有个大概的意思就可以了。哪怕你不返回值,直接写 return 是一样的。

return还有一个作用,就是当函数出现return的时候,返回值,并且终止函数。因为得到最后想要的值了,所以,当return语句执行的时候,函数终止。

你的这第二个函数之所以能够一直不停的运行是因为setTimeout()函数,这个函数能够在固定的时间后运行js代码。
setTimeout( "要运行的js代码" , 延时单位毫秒 );

第一个函数在初始化完元素 5秒后运行第二个函数;
第二个函数每10毫秒运行一次,让这个元素的left属性靠近200px top属性靠近100px,如果你把第一个函数中的100px换成比100小的或者其他的值,你就会看见这个元素是向右下角移动,然后平移。一直到left为200,top为100为止,return返回,最后一次函数不运行setTimeou
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-17
执行不执行和return什么没关系,只要return了就不再执行。
return false也不是终止函数的意思,只是返回bool类型的false值,return true也一样,这叫返回值。return 1,2,3,4都能终止函数

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网