Оценка вычисляемого кода, который обращается к переменным локальной области видимости - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь создать функцию, которая возвращает функцию обратного вызова, которая при вызове будет обращаться к параметрам локальной области действия вызывающих абонентов .

Рассмотрим следующий код:

function caller() {
    let param = "original scope param.";
    let wrapped = callee();

    eval(wrapped.toString())(); // Works
    wrapped(); // Doesn't work
}

function callee() {
    return () => eval("console.log('Im accessing ' + param)");
}

caller()

вызов eval в функции caller работает, но я не контролирую эту функцию, поэтому не могу сделать ее eval своим выводом.

Если бы я мог получить доступ к Scope Chain, моя проблема была бы решена, но я не нашел ничего, что могло бы сделать это.Буду признателен за любую помощь, даже если решение очень грязное.

...