js默认是不支持funtion f($a=a){}
这种写法的,如果想设置函数参数的默认值,可以参考如下三种方法:
- 第一种方法:
使用arguments,函数所有的参数都会存入arguments数组离去,所以我们可以从中获取相应的参数然后赋值
function example(a,b){
var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1
var b = arguments[1] ? arguments[1] : 2;//设置参数b的默认值为2
return a+b;
}
- 第二种方法
使用运算符 ||,这个等同于if(a){a=xx}
的写法
function example(name,age){
name=name||'jason';
age=age||30;
alert('你好!我是'+name+',今年'+age+'岁。');
}
- 第三种方法
使用jquery扩展,适合参数较多的情况下
function example(setting){
var defaultSetting={
name:'jason',
age:'30',
sex:'男',
phone:'100866',
QQ:'100866',
birthday:'1949.10.01'
};
$.extend(defaultSetting,settings);
var message='姓名:'+defaultSetting.name
+',性别:'+defaultSetting.sex
+',年龄:'+defaultSetting.age
+',电话:'+defaultSetting.phone
+',QQ:'+defaultSetting.QQ
+',生日:'+defaultSetting.birthday
+'。';
alert(message);
}