|
第十三页:参数及返回值 (
)
尽管无参数的函数在减少写源码工作量,HTML源码可读性上很 有用,但有参数的函数会更为有用。
上一例中,当返回的分、秒值小于10时会有问题发生。我们想 要看到的秒值是04而非4。我们可以这样做:
var the_minute = the_date.getMinutes();
if (the_minute < 10)
{
the_minute = "0" + the_minute;
}
var the_second = the_date.getSeconds();
if (the_second < 10)
{
the_second = "0" + the_second;
}
它会非常有效。但是注意,同样的源码你写了两次:若某件 东西小于10,则前面加“0”。所以要考虑当用同一代码要多
次重写时,用函数来做。本例中我写了一个叫fixNumber的函数:
function fixNumber(the_number)
{
if (the_number < 10)
{
the_number = "0" + the_number;
}
return the_number;
}
fixNumber的参数是the_number。一个参数也是一个变量,当该 函数被调用时,其参数值也被设置。在本例中,我们这样调用函数:
var fixed_variable = fixNumber(4);
参数the_number在函数中设置为4。到现在你应该对fixNumber的主体有了一定的了解。它的意思是:如果变量the_number小于10,则在它的前面加一个0。
这里面新的内容是return指令:返回the_number的值。在下面的情况中就会用到return指令:
var some_variable = someFunction();
变量some_variable的值是函数someFunction() 的返回值。在fixNumber中,我加入:
return the_number,则退出函数并将返回the_number的值返回给任何一个等待被设置的变量。所以,我这样书写代码:
var fixed_variable = fixNumber(4);
the_number的初始值将通过函数调用被设置为4,然后由于4小 于10,所以the_number将被改为"04"。然后the_number值被返回,而且变量fixed_variable将被设置为"04"
。
为了将fixNumber包括在原始函数announceTime()中,我添加了如下内容:
function announceTime()
{
//get the date, the hour, minutes,
// and seconds
var the_date = new Date();
var the_hour = the_date.getHours();
var the_minute = the_date.getMinutes();
var fixed_minute = fixNumber(the_minute);
var the_second = the_date.getSeconds();
var fixed_second = fixNumber(the_second);
//put together the string and
// alert with it
var the_time = the_hour + ":" +
fixed_minute + ":" + fixed_second;
alert("The time is now: " +the_time);
}
假定时间链接被点击时,时间为12:04:05。用new Date()获得日期,用getHours()获得小时,用前面所属方法获得分钟,分钟在本例中应该是4,
然后调用fixNumber,其参数为the_minute:
var fixed_minute = fixNumber(the_minute);
当fixNumber()被调用时,参数the_number被设置为the_minute。在本例中由于the_minute是4,所以the_number将被设置为4。设置完参数后,我们进入函数主体。由于4小于10,the_number被改变为"04",然后the_number值用return指令返回。当"04"被fixNumber返回后,本例fixed_minute就等于"04"。
我们一步一步来研究该过程。假定时间为12:04:05。
我们从函数announceTime()开始
- the_minute = the_date.getMinutes();
则the_minute = 4
- fixed_minute = fixNumber(the_minute);等于函
数fixNumber()并将其值返回给fixed_minute
现在进入函数fixNumber()
- 函数fixNumber(the_number)fixNumber()用the_minute的值调用,the_minute值是4,所以现在the_number
= 4
- 如果(the_number < 10) {the_number = "0" +
the_number;}由于4小于10,所以the_number现在等于"04"
- 返回the_number值,退出该函数并返回值"04"
现在已经退出函数fixTime(),所以现在我们回
到announceTime()
- 该函数返回值为"04",所以fixed_minute 现在等于"04"
该例用了一个只有一个参数的函数。实际上你可以为函数设置多个参数。例如该函数输入两个数组并返回一个元素列表。
JavaScript教程
第一页 第四课介绍
第二页 循环介绍
第三页 循环的密码
第四页 再谈WHILE循环
第五页 For循环
第六页 嵌套循环
第七页 循环练习
第八页 数组
第九页 数组和循环
第十页 文件目标模块中的数组
第十一页 函数
第十二页 无参数函数
第十三页 参数及返回值
第十四页 多于一个参数的函数
|