如何執行一個字符串作爲代碼(使用eval()
)並給它一些變量?例如,我有一個名爲vars
的對象,並希望它的每個屬性都可以在代碼中進行訪問,而無需指定對象名稱。事情是這樣的:eval()與範圍內的對象的變量
function evalWithVariables(func, vars) {
//some magic here
return eval(func);
}
function test() {
var retval = evalWithVariables("a>5", {"a":7});
console.log(retval);
}
哦,代碼是可信的,它來自相同的服務器腳本,它不是用戶生成的,我敢肯定,eval
這裏是合適的工具(和我知道eval
往往是邪惡的)。
編輯:對我來說最重要的是,傳遞給eval()
的代碼看起來不錯,很簡短,並且不需要包含幫助變量名等等。
嗯,是的,應該工作,但它不知何故看起來不乾淨。 – thejh 2010-12-05 16:09:31
概念本身是不潔的:) – 2010-12-05 17:54:54