第13页: 参数及其返回值 作者:Thau! |
尽管无参数的函数在减少写源码工作量, 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; } |
它会非常有效。但是注意,同样的源码你写了两次:若 代码要多次重写时,用函数来做。本例中我写了一个叫 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"。 我们一步一步来研究该过程。假定时间为 我们从函数则the_minute = 4 等于函数fixNumber()并将其值返回给 fixed_minute 现在进入函数fixNumber()fixNumber()用the_minute的值调用, the_minute值是4,所以现在the_number = 4 + the_number;} 由于4小于10,所以the_number现在等于"04" 退出该函数并返回值"04" 现在已经退出函数fixTime(),所以现在我们回到announceTime() 在等于"04" 该例用了一个只有一个参数的函数。实际上 |
第1页: 第四课介绍 第2页: 循环介绍 第3页: 循环的密码 第4页: 再谈WHILE循环 第5页: For 循环 第6页: 嵌套循环 第7页: 循环练习 第8页: 数组 第9页: 数组和循环 第10页:文件目标模块中的数组 第11页: 函数 第12页: 无参数函数 第13页: 参数及返回值 第14页: 多于一个参数的函数
|