编辑
这里的速度非常快,因为它只改变它需要的东西。
function test(a){
var p={p1:'1',p2:'2',p3:'3',p4:'4',p5:'5',p6:'6'}
for(var b in a){p[b]=a[b]}return p;
}
console.log(test({p1:'1000',p3:'2000'}));
这是一种方法
1.在defaulParams中定义你的默认参数
2.将包含参数的类似对象传递给测试函数
var
defaultParams={p1:'1',p2:'2',p3:'3',p4:'4',p5:'5',p6:'6'},
test=function(a){
var myparams={}
for(var b in defaultParams){
myparams[b]=a[b]||defaultParams[b];
}
return myparams
}
console.log(test({p1:'1000',p3:'2000'}));
如果它不适合你,另一种写这个的方法。
function test(a){
var defaultParams={p1:'1',p2:'2',p3:'3',p4:'4',p5:'5',p6:'6'},myparams={};
for(var b in defaultParams){
myparams[b]=a[b]||defaultParams[b];
}
return myparams
}
所以现在要执行该功能:
var anewlistofparams=test({p1:'1000',p3:'2000'})
或者
var ihavethisparams={p1:'1000',p3:'2000'};
var anewlistofparams=test(ihavethisparams);
.
.
错误的方式...不要那样做...不好
var
test=function(){
var defaultParams={p1:'1',p2:'2',p3:'3',p4:'4',p5:'5',p6:'6'},myparams={};
for(var a=0,b=arguments.length;a<b;a++){
myparams['p'+(a+1)]=(arguments[a]!=''?arguments[a]:defaultParams['p'+a]);
}
return myparams
}
console.log(test('1000','','2000','','',''));
阵列方式也不好....
var
test=function(){
var defaultParams={p1:'1',p2:'2',p3:'3',p4:'4',p5:'5',p6:'6'},myparams=[];
for(var a=0,b=arguments.length;a<b;a++){
myparams[a]=(arguments[a]!=''?arguments[a]:defaultParams['p'+a]);
}
return myparams
}
console.log(test('1000','','2000','','',''));
为什么??
因为如果你有可能的参数,你最终会每次发送这样的东西
test('','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','1','','','','','','','3','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','');
使用带有参数名称的对象
test({p2589:'2589'});