javascript动态获取参数

pujianmeng 2013-05-27 09:44:20
//下面这个方法中参数的个数是不定的,而且很多
function demo(a1,a2,a3……){
//Collection 我已经写好,里面已经有put get方法了
var collection = new Collection();

for(var i=0;i<arguments.length;i++){
//怎么能把下面这句话的argName动态生成呢,分别是'a1','a2','a3'……,就是让他对应着demo(a1,a2,a3)中声明的变量名
collection.put("argName":arguments[i]);
}
}
...全文
257 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
pujianmeng 2013-06-01
  • 打赏
  • 举报
回复
我找到解决问题的办法啦!
KK3K2005 2013-05-31
  • 打赏
  • 举报
回复
引用 10 楼 pujianmeng 的回复:
[quote=引用 4 楼 KK3K2005 的回复:] 参考下配置传值 function init(cfg){ for(var k in cfg) collection.put(k:cfg[k]); }
这样就得更改参数的格式啊,可是我参数格式是不能变的,因为这个方法是别人写好的,我也不能改变,我只是把别人的东西拿来用啦[/quote] 那么写的人认为应该怎么用呢? 难道对于一个提供的api 还需要调用者再外面询问怎么用?
  • 打赏
  • 举报
回复
arguments对象没有存储参数名称,只是存储参数值而已。。 传参数名称有什么意义吗?不知道方法需要什么参数名称也不知道如何调用。。。如果有规律的参数名称,直接连接上循环的下标就行了

function demo(){
var collection = new Collection();

for(var i=0;i<arguments.length;i++){
collection.put("a"+(i+1),arguments[i]);
}
}
pujianmeng 2013-05-31
  • 打赏
  • 举报
回复
引用 6 楼 mmm306306 的回复:
你是想用 arguments 吗???
恩,其实我就是想用这个来完成,可是这个只有实参和对应的下标,却不能拿到形参
pujianmeng 2013-05-31
  • 打赏
  • 举报
回复
引用 7 楼 jslang 的回复:
put的形参是怎么定义的 collection.put('view':view); 这个语法错误,你是不是要这样 collection.put({'view':view});
引用 5 楼 showbo 的回复:
[quote=引用 3 楼 pujianmeng 的回复:] 其实比这还要麻烦,因为参数个数是不定的,所以我还得这么写 function demo(view,model,name){ var collection = new Collection();//该类我已经写好了 if((typeof view)!=='undefined' && view!==null){ collection.put('view':view); } if((typeof model)!=='undefined' && model!==null){ collection.put('model':model); } if((typeof name)!=='undefined' && name!==null){ collection.put('name':name); } }
collection.put('view':view); 你这个put方法的参数有哪些??这样传参就是错的。。都不知道put方法如何接受参数[/quote] 呵呵,这个是我打字时候的失误,应该是put("view",view);中间不是冒号,这是个失误
pujianmeng 2013-05-31
  • 打赏
  • 举报
回复
引用 4 楼 KK3K2005 的回复:
参考下配置传值 function init(cfg){ for(var k in cfg) collection.put(k:cfg[k]); }
这样就得更改参数的格式啊,可是我参数格式是不能变的,因为这个方法是别人写好的,我也不能改变,我只是把别人的东西拿来用啦
当然感 2013-05-30
  • 打赏
  • 举报
回复
//下面这个方法中参数的个数是不定的,而且很多 function demo(a1,a2,a3……){ //Collection 我已经写好,里面已经有put get方法了 var collection = new Collection(); for(var i=0;i<arguments.length;i++){ //怎么能把下面这句话的argName动态生成呢,分别是'a1','a2','a3'……,就是让他对应着demo(a1,a2,a3)中声明的变量名 collection.put("+arguments[i]+":arguments[i]); } } 这样不行?
马老虎 2013-05-28
  • 打赏
  • 举报
回复
你是想用 arguments 吗???
  • 打赏
  • 举报
回复
引用 3 楼 pujianmeng 的回复:
其实比这还要麻烦,因为参数个数是不定的,所以我还得这么写 function demo(view,model,name){ var collection = new Collection();//该类我已经写好了 if((typeof view)!=='undefined' && view!==null){ collection.put('view':view); } if((typeof model)!=='undefined' && model!==null){ collection.put('model':model); } if((typeof name)!=='undefined' && name!==null){ collection.put('name':name); } }
collection.put('view':view); 你这个put方法的参数有哪些??这样传参就是错的。。都不知道put方法如何接受参数
「已注销」 2013-05-28
  • 打赏
  • 举报
回复
你把参数格式调整一下

function demo(data){
	var collection = new Collection();//该类我已经写好了
	var temp = {};
	for(var i in data){
		temp[i] = data[i];
		collection.put(temp);
	}
	
}
var obj = {view:'aaa',model:'bbb',name:'ccc'};
demo(obj);
天际的海浪 2013-05-28
  • 打赏
  • 举报
回复
put的形参是怎么定义的 collection.put('view':view); 这个语法错误,你是不是要这样 collection.put({'view':view});
KK3K2005 2013-05-27
  • 打赏
  • 举报
回复
参考下配置传值 function init(cfg){ for(var k in cfg) collection.put(k:cfg[k]); }
pujianmeng 2013-05-27
  • 打赏
  • 举报
回复
其实比这还要麻烦,因为参数个数是不定的,所以我还得这么写 function demo(view,model,name){ var collection = new Collection();//该类我已经写好了 if((typeof view)!=='undefined' && view!==null){ collection.put('view':view); } if((typeof model)!=='undefined' && model!==null){ collection.put('model':model); } if((typeof name)!=='undefined' && name!==null){ collection.put('name':name); } }
pujianmeng 2013-05-27
  • 打赏
  • 举报
回复
恩,代码是不对的,我只是写了个思路,其实是这样的 function demo(view,model,name){ var collection = new Collection();//该类我已经写好了 collection.put('view':view); collection.put('model':model); collection.put('name':name); } 其实参数比这还要多很多很多,所以我就想用for循环搞定
  • 打赏
  • 举报
回复
没明白要干嘛,你的代码有问题噶。。~

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧