2011-10-19 182 views
1

我正在嘗試創建一個小型庫,您可以發送一個對象(具有函數)和一些數據以及參數,並將對象,數據和參數發送給一個工作進程然後將EVAL重建函數(從字符串到函數)評估函數

對象目前我有這樣的:

JSON.stringify(object, function(key, val) { if typeof val === 'function' { return val + '' } return val });

這個函數將字符串化包括函數的對象。

在我的工人,我試圖撤消這個過程。

我曾嘗試以下: eval(object) 我也曾嘗試與努力的eval()的每一個,當我遇到一個實施JSON.parse。

我也曾嘗試eval("return " + object.function)

這可能嗎?

+0

使用eval幾乎總是一個壞主意。 –

+1

你想達到什麼目的?我的意思是這個問題背後的問題。 – stivlo

+0

我正在嘗試通過webworkers分配計算。但是很多時候我不知道計算是什麼,直到我需要做這件事。 – Jeff

回答

1

你可能想:

eval("(" + object.function + ")"); 

你不能把一個return語句只是地方。

function() {}被評估爲函數聲明,由於它沒有名字而失敗。由於要解析的數據表示功能表達式,就像var f = function() {}一樣,您需要在其周圍放置(),以便將其作爲表達式進行評估。

+0

謝謝。正是我在找什麼。 – Jeff