2
我想知道如何用來自不同本地作用域的數據調用eval()。在不同的本地作用域使用eval()
喜歡的東西:
function doSomething() {
var y = 1;
print_and_eval('y+1');
}
function print_and_eval(data) {
print(data);
eval(data);
}
編輯: - 它是安全的在我的情況下使用eval()。請不要將此推薦爲解決方案。 - 主要的問題是,我在doSomething()中有局部變量,它們沒有在print_and_eval()中定義。然後評估會導致「ReferenceError:y未定義」錯誤。
js> print_and_eval('var a = {x:1}')
var a = {x:1}
js> print_and_eval('print(a.x)')
print(a.x)
typein:3012: TypeError: a is null
我想接收在這種情況下輸出「1」。
AFAIK,有沒有簡單的方法來在Javascript中做到這一點。然而,對於所謂的「本地範圍」,另一個更具體的術語通常稱爲「綁定範圍」或「綁定上下文」,指的是變量所綁定的值。 –
感謝您的提示! – calquin
你能舉一個更具體的例子嗎?我相信只要傳遞一個函數就可以解決問題(帶上下文) –