在javascript中使用相同的上下文中的两个代码

时间:2014-06-10 03:16:49

标签: javascript eval

我的目标是允许用户在不同时刻输入代码行并将它们添加到相同的上下文中,但我想在新的上下文中运行它们以防止this成为{{1} }}

我试过这个,但我发现对上下文的更改没有保留:

window

我能通过某种方式实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

范围和背景是完全不同的事情,eval没有进入它。您的代码与

相同
var run = function () { console.log(this === context);var a = 3);

无法在函数外部访问a。宣布a的范围不是调用范围,它是拥有范围的函数,并且写成a与任何一个都无关thiscontext

如果您希望两个函数共享上下文,则需要使用this.a = 3,而不是var a = 3