Я пытаюсь создать функцию, которая возвращает функцию обратного вызова, которая при вызове будет обращаться к параметрам локальной области действия вызывающих абонентов .
Рассмотрим следующий код:
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, моя проблема была бы решена, но я не нашел ничего, что могло бы сделать это.Буду признателен за любую помощь, даже если решение очень грязное.