2013-07-12 143 views
-1

我有一个函数书面(ARG)的说法获取函数的返回值在JavaScript

function written(arg) 
{ 
for(var i in arg) 
console.log(arg[i]); 
} 

通常需要一个字符串,但我想修改,以便它可以作为论据。这种变化之后,我想这样称呼它

written(function(){return str;}) 

所以我的问题是如何function written提取arg价值,它可以是一个字符串或函数返回字符串

+0

通过JSON你的意思是一个JavaScript对象,对不对?这个问题与JSON标准无关。 –

+0

添加控制流程以指导基于输入的执行流程。在这种情况下,它将是一个双向流动。 – Reece

回答

0

您可以检查传递的参数是否是一个函数,如果是则调用它来访问JSON值

function written(arg){ 
    if(typeof arg === 'function'){ 
     arg = arg(); 
    } 
    for(var i in arg){ 
     console.log(arg[i]); 
    } 
} 

演示:Fiddle

0

我建议,检查的说法,打电话给你的函数递归后:

function written(arg){ 
    if(typeof arg === 'function'){ 
     return written.apply(this,[arg()]); 
    } 
    // Actual body of your function 
} 

万一你有高阶函数

相关问题