我正在尝试使用带有splat参数的用户定义函数func(obj / *,args /){...}解析json对象。我被这段代码所困扰。

function func (obj /*, *args*/) {

  pobj= JSON.parse(obj)
  var star_args = Array.prototype.slice.call (arguments, func.length);

  alert(pobj.name);
   //outputs name Tintin

  for (i=0;i<star_args.length;i++){
     alert(pobj.star_args[i]);
   }

}

var json = '{"name":"Tintin","addr":"Kausaltar"}'

//function call with a json object
func(json,'name','addr');


输出是
->丁丁警报弹出
跟着错误

/*
Exception: pobj.star_args is undefined
func@Scratchpad/1:10
@Scratchpad/1:18
*/


所以,我的问题是我如何使用

pobj.star_args[i]


我知道Javascript解析器是从左到右启动的,因此它可以简化开发工作。

请任何人,帮助! 。我在暂存器中测试了代码。

最佳答案

尝试换线

alert(pobj.star_args[i]);




alert(star_args[i]);


说明:star_args是局部变量;它不是pobj对象的一部分。因此,您只需要直接引用它即可。

07-24 18:42