Я пытаюсь создать свою собственную функцию eval в JavaScript, которая будет выполнять строку в окружающем контексте, например, eval, плюс добавить еще несколько вещей.
Итак, в общем, при выполнении:
eval("var foo = 8");
foo; // === 8
Нет проблем; однако, когда я хочу расширить eval
своей собственной функцией, например так:
function myEval(str) {
return eval(str);
}
myEval("var foo = 8");
foo; //error, "foo" is not defined etc.....
И очевидная причина в том, что в myEval вызываемая функция eval выполняется только в области действия этой функции, а не в окружающая область.
Мне было интересно, возможно ли выполнить eval в области, в которую была вызвана его окружающая функция, чтобы расширить JavaScript функцию eval?