2011-04-17 96 views
1

我在JavaScript一些現有的代碼:typeof運算等效在scriptsharp

功能setPostData(選擇器,數據){

如果(typeof運算(數據)=== '功能')
數據=數據(); (選擇器).setParam({'postData':data});

}

怎麼會變成這樣轉化爲scriptsharp(0.7)?尤其是if聲明... 該函數接受數據參數,該參數可以是字典或返回字典的函數。 如果數據是一個函數,應該先調用該函數,返回字典結果...

將函數分成兩個函數並不是推薦的解決方案,因爲它是從其他javascript(非scriptsharp)調用的。

回答

3

你可以試試這個:

if (Type.GetScriptType(data) == "function") 
{ 
    Func<object> dataAsFunctor = (Func<object>)data; 
    data = dataAsFunctor(); 
} 
+0

精湛......這正是我一直在尋找... – rekna 2011-04-18 06:30:29

相關問題