簡體   English   中英

V8:創建新的變量范圍

[英]V8: create new variable scope

在JavaScript中,當我輸入一個新函數時,會得到一個新的局部變量作用域。 例如:

function f() {
     var x = 42; // this is in our local variable scope
     // other code
}

我現在想在V8中做同樣的事情。 我還有other code作為String ,並通過Script::Compile ,並通過Script::Run

現在,我創建了一個新的Context但是我認為這完全是矯kill過正。 這也意味着我必須在新的上下文中重新初始化全局變量。

如果我理解正確,那么我想假設您希望使C ++輔助腳本在新的隔離上下文中運行,因為您不希望它意外地別名或修改全局環境。 在這種情況下,在執行代碼之前,請執行以下操作:

std::string sScopedCode = "(function(){" + sYourCode + "})();"

這樣可以確保sYourCode中的代碼與您可能進行的其他調用保持隔離。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM