我正在尝试使用带有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
对象的一部分。因此,您只需要直接引用它即可。