码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript - Jquery - 函数参数

时间:2017-06-06 14:23:01      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:pes   用户   span   ping   pos   color   布尔   gen   option   

函数参数(Parameter Mapping)

多参数

当一个函数具有多个参数时,如果我们在调用该函数时传递一大堆参数进去,而有些参数并不是必须的,代码看起来就有点混乱,此时可以使用匿名对象来解决。将参数作为匿名对象的属性,然后将匿名对象作为函数的参数即可。

参数替换

函数内部可以定义一个对象,设置对象的属性就是设置函数参数的默认值。

技术分享
function aa(options) {
    //配置默认参数
    var param = { gender: ‘man‘, age: 18 };    
   //extend方法本来是用于为JQuery扩展方法的,但当它接受两个参数时,其作用就是合并用户传递的参数和默认参数而非扩展方法。合并后函数使用的参数以用户传递的为准,没传递的参数就自动会用默认值替代。
    $.extend(param, options);
    alert(param.age);   
}

aa();//调用aa,不提供参数会使用默认参数
aa("woman");//提供一个参数,另一个会使用默认参数
aa("woman",20);//提供两个参数,不再使用默认参数
View Code

深度替换

如果函数的参数(对象)的某个属性也是对象,是否进行全部合并需要为extend提供一个布尔值。

技术分享
function aa(options) {
    var op = $.extend(true, { gender: "man", job: { Salary: ‘1000‘, typesWork: ‘scientist‘, age: 30 } }, options);
    return op;
}

var test=aa({ name: ‘leo‘ ,  job : { Salary : ‘100000‘ , typesWork : ‘Programmer‘ } });
for (var i in test) {
    var jobObj = test[i];
    if (typeof jobObj == "object") {
        for (var z in jobObj) {
            alert(z + ":" + jobObj[z]);
        }
    }
    else {
        alert(i + ":" + test[i]);
    }
}
//参数替换的结果为:{name: ‘leo‘ { gender: "man", job: { Salary: ‘100000‘, typesWork: ‘Programmer‘, age: 30 }}
//如果指定第一个参数为false则结果会忽略age
View Code

 

Javascript - 学习总目录

 

Javascript - Jquery - 函数参数

标签:pes   用户   span   ping   pos   color   布尔   gen   option   

原文地址:http://www.cnblogs.com/myrocknroll/p/6951079.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!