评估访问本地范围变量的计算代码

时间:2019-09-20 17:47:15

标签: javascript scope eval

我正在尝试创建一个返回回调的函数,该函数在被调用时将访问调用者的本地作用域参数

考虑以下代码:

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中使用它。

如果我可以访问范围链,那么我的问题就可以解决,但是我没有找到能做到这一点的东西。即使解决方案非常脏,也将提供任何帮助。

0 个答案:

没有答案