У меня есть файл javascript, который читает другой файл, который может содержать фрагменты javascript, которые должны быть eval() - ed. Предполагается, что фрагменты script соответствуют строгому подмножеству javascript, который ограничивает то, что они могут делать, и какие переменные они могут изменять, но я хочу знать, есть ли способ обеспечить его соблюдение, не позволяя eval видеть переменные в глобальный охват. Что-то вроде следующего:
function safeEval( fragment )
{
var localVariable = g_Variable;
{
// do magic scoping here so that the eval fragment can see localVariable
// but not g_Variable or anything else outside function scope
eval( fragment );
}
}
Фактический код не должен выглядеть так: я открыт для всех и всех странных трюков с закрытием и т.д. Но я действительно хочу знать, возможно ли это.