浅谈Javascript中默认参数值的设置

第一种:

   1: function test(a,b){
   2:    var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1
   3:    var b = arguments[1] ? arguments[1] : 9;//设置参数b的默认值为9
   4:    return a+b;

其等价为

   1: function test(){
   2: var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1
   3: var b = arguments[1] ? arguments[1] : 9;//设置参数b的默认值为9
   4: return a+b;
   5: }

调用示例

   1: alert(test());  //输出10
   2: alert(test(5));   //输出14
   3: alert(test(5,6));  //输出11
   4: alert(test(null,6));  //输出7
   5: alert(test(6,null));   //输出15

 

第二种:

   1: function test(blog,address){
   2:     blog=blog||‘淡忘~浅思‘;
   3:     address=address||‘www.ido321.com‘;
   4:     alert(‘博客名是‘+blog+‘的地址是‘+address);
   5: }

其等价为

   1: function test(blog,address){
   2:     if(!blog){blog=‘淡忘~浅思‘;}
   3:     if(!address){address=‘www.ido321.com‘;}
   4:     alert(‘博客名是‘+blog+‘的地址是‘+address);
   5: }

调用示例

   1: test();   //博客名是淡忘~浅思的地址是www.ido321.com
   2: test(‘csdn‘,‘blog.csdn.net‘);  //博客名是csdn的地址是blog.csdn.net
   3: test(‘‘,‘blog.csdn.net/u011043843‘);  //博客名是淡忘~浅思的地址是blog.csdn.net/u011043843

 

第三种:

   1: function test(setting){
   2:     var defaultSetting={
   3:         name:‘程序爱好者‘,
   4:         age:‘1‘,
   5:         phone:‘15602277510‘,
   6:         QQ:‘259280570‘,
   7:         message:‘欢迎你的加入‘
   8:     };
   9:     $.extend(defaultSetting,setting);
  10:     var msg=‘姓名:‘+defaultSetting.name
  11:     +‘,年龄:‘+defaultSetting.age
  12:     +‘,电话:‘+defaultSetting.phone
  13:     +‘,QQ群:‘+defaultSetting.QQ
  14:     +‘,说明:‘+defaultSetting.message
  15:     +‘。‘;
  16:     alert(msg);
  17: }

调用示例

   1: test();  //输出:姓名:程序爱好者,年龄:1,电话:15602277510,QQ群:259280570,说明:欢迎你的加入。
   2: test({
   3:   name:‘dwqs‘,
   4:   age:‘20‘,
   5:   QQ:‘461147874‘,
   6:   message:‘博客:www.ido321.com‘
   7: });
   8: //输出:姓名:dwqs,年龄:20,电话:15602277510,QQ群:461147874,说明:博客:www.ido321.com。

ps:函数参数比较多时,可以用此方法。这是JQuery的一种扩展,所以需要引入JQuery。

来源:http://www.ido321.com/555.html

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。