我的目标是允许用户在不同时刻输入代码行并将它们添加到相同的上下文中,但我想在新的上下文中运行它们以防止this
成为{{1} }}
我试过这个,但我发现对上下文的更改没有保留:
window
我能通过某种方式实现这一目标吗?
答案 0 :(得分:0)
范围和背景是完全不同的事情,eval
没有进入它。您的代码与
var run = function () { console.log(this === context);var a = 3);
无法在函数外部访问a
。宣布a
的范围不是调用范围,它是拥有范围的函数,并且写成a
与任何一个都无关this
或context
。
如果您希望两个函数共享上下文,则需要使用this.a = 3
,而不是var a = 3
。