我试图在 Rhino JavaScript 的函数中定义一个动态变量(特别是嵌入在 Java 6 中的),但我不想求助于 eval,也不想通过 this 引用它。基本上,我想获取一个对象,并将每个属性转换为函数范围内的 var ......类似于:
var abc = "value";
var context = { abc: 123, xyz: "def" };
function test(cx) {
for (var p in cx) {
this_scope[p] = cx[p];
}
println(abc);
// DON'T WANT TO HAVE TO DO THIS:
// pritnln(this.abc);
}
test(context); // prints: 123
println(abc); // prints: value
信不信由你,如果我必须使用“this”,这很重要。(它是一个动态生成的函数,我想用不同的上下文对象一遍又一遍地调用它,并且对每个变量使用“this”将是非常有害的)。
我还想避免必须获取新的引擎上下文或类似的东西......如果我可以直接在 JavaScript 中执行此操作,那就太好了(我认为结果会明显更快)。