我正在尝试创建一个返回回调的函数,该函数在被调用时将访问调用者的本地作用域参数。
考虑以下代码:
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
中使用它。
如果我可以访问范围链,那么我的问题就可以解决,但是我没有找到能做到这一点的东西。即使解决方案非常脏,也将提供任何帮助。