JavaScript:函数的可选参数

来源:互联网 发布:天猫 淘宝商城长靴 编辑:程序博客网 时间:2024/05/18 20:35

JavaScript函数可以以任意数目的参数来调用, 而不管函数定义中的参数名字有多少个。由于函数是宽松类型的,它就没有办法声明所期望的参数的类型,并且,向任何函数传递任意类型的参数都是合法的。

当调用一个函数的参数少于声明的参数个数的时候,其他的参数就有一个undefined的值。编写这样的函数常常是很有用的:某些参数为可选的并且在调用函数的时候可以忽略它们。要做到这一点,必须能够为忽略掉的参数分配一个合理的默认值。例如:

<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><script>function copyPropertyNamesToArray(o,a){a=a||[];for(var prop in o){a.push(prop);}return a;}</script></head><body><script>var o={};o.x=1;o.y=2;o.z=3;p={"name":"Tom"};var test=copyPropertyNamesToArray(o);alert(test[0]);alert(test[1]);alert(test[2]);alert(copyPropertyNamesToArray(p,test));</script></body></html>
在本例中,如果a已经定义了并且非null,它返回a,即便a是空的。否则它返回一个新的空数组。

注意在使用可选的参数来设计函数的时候,应该确保把可选的参数放在参数列表的末尾,以便它们可以被忽略。