有沒有辦法在調用eval()
時指定全局使用哪個對象?將eval()與自定義全局一起使用
(我不問如何做全球的eval()。)
這不是工作,但是這說明我想什麼:
var pseudoGlobal = {};
eval("x = 12", pseudoGlobal);
pseudoGlobal.x; // 12
的一點是,真正的全球性綁定不受代碼eval()'ed中的隱式變量聲明(即,沒有var關鍵字)的影響。
至於eval.call(pseudoGlobal, "x=12")
或eval.apply(pseudoGlobal, ["x=12"])
,一些口譯員不會允許它。
目的是在Javascript本身內創建一個獨立/受控/安全的執行環境。 – gawi