2013-07-12 181 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 
} 

萬一你有高階函數

相關問題