我写了一个函数(arg)
function written(arg)
{
for(var i in arg)
console.log(arg[i]);
}
它通常需要一个字符串,但我想修改它以便它可以将函数作为参数。在那次改变之后,我想这样称呼它
written(function(){return str;})
所以我的问题是如何提取arg
in的值function written
,它可以是字符串或返回字符串的函数
我写了一个函数(arg)
function written(arg)
{
for(var i in arg)
console.log(arg[i]);
}
它通常需要一个字符串,但我想修改它以便它可以将函数作为参数。在那次改变之后,我想这样称呼它
written(function(){return str;})
所以我的问题是如何提取arg
in的值function written
,它可以是字符串或返回字符串的函数
您可以检查传递的参数是否为函数,如果是则调用它以访问json值
function written(arg){
if(typeof arg === 'function'){
arg = arg();
}
for(var i in arg){
console.log(arg[i]);
}
}
演示:小提琴
我建议,在检查参数后,递归调用你的函数:
function written(arg){
if(typeof arg === 'function'){
return written.apply(this,[arg()]);
}
// Actual body of your function
}
以防万一你有更高阶的功能