js自定义函数的过程中,往往我们希望指定一些参数的默认值
很容易的会写出如下的js 方法
function test(a,b,c=1,d='id'){
return 1;
}
但是定义完之后,浏览器会提示页面错误,导致函数无法使用(如chrome)
当然在某些浏览器中 函数仍然是可以正常使用的(比如firefox)
如此看来,这个function 肯定是相当不合要求的
实际上js是不能这样定义function的,(不像php等其他编程语言)
解决
方案一:借助arguments实参数组来实现,改写如下:
function test(a,b){
c = arguments[2] ? arguments[2] : 1;
d = arguments[3] ? arguments[3] : 'id';
return 1;
}
方案二:在function中判断参数是否已定义,改写如下:
function test(a,b,c,d){
if(c === undefined) c=1;
if(d === undefined) d='id';
return 1;
}
看起来两种解决方案也没什么太大差异。。。
需要注意的是js中的数组下标从 0 开始
噢了 :)
转载于:https://blog.51cto.com/vsfor/1309298