2012-09-04 30 views
0

我有一個js腳本簡單地得到一個基本的Json內容page.jsjQuery的AJAX的getJSON的onSuccess使用函數從響應

{ 
"desc":"", 
**"save":function(){alert(0);}** 
} 

然後success:function(data)我只是想做data.save()的onSuccess永遠不會叫?

「完整」雖然沒有,但仍然保存我的功能沒有評估?

我試圖書面方式作爲一個字符串:"save":"function(){alert(0);}" 並將其應用到eval的onSuccess,但奇怪的是它說函數沒有名字

這是一個限制 - 我們不能通過功能的一部分json響應對象?

甚至更​​少執行呢? 還是我只是做錯事

感謝您的洞察力

+1

是的,這是JSON的一個限制,它只適用於值而不是函數。你的解決方法應該適用於一些調整。 –

回答

1

JSON是一個純粹的數據定義語言,所以函數不能是JSO的一部分N對象。見this question。使用eval()可能工作,但我強烈勸阻你使用它,因爲它是unsafe。我建議您在對象中實現所需的行爲,然後使用從服務器獲取的JSON設置此對象的狀態。