让我首先承认,我对JavaScript一窍不通。所以这个问题可能在基础知识方面并不很严谨,并且可能缺乏足够的信息来帮助我。
背景
我们的组织有一个基于Eclipse的内部JavaScript IDE。我们所要做的就是编写JavaScript脚本并直接执行它们。我的猜测是它使用Rhino,因为我在一些异常的堆栈跟踪中看到了它。
我的代码跨越3个“.js”文件。
Script-1:声明全局变量并将它们实例化为Java对象
背景
我们的组织有一个基于Eclipse的内部JavaScript IDE。我们所要做的就是编写JavaScript脚本并直接执行它们。我的猜测是它使用Rhino,因为我在一些异常的堆栈跟踪中看到了它。
我的代码跨越3个“.js”文件。
Script-1:声明全局变量并将它们实例化为Java对象
importClass(java.util.HashMap);
var hmTCResult = new HashMap();
脚本-2:使用来自脚本-1的全局变量执行一些操作
Script-2.prototype.run = function() {
hmTCResult.put("Result", "Fail");
};
changeStatus = function(strStatus){
hmTCResult.put("Result", strStatus);
};
脚本3:调用脚本2中使用全局变量的函数
changeStatus("Pass")
问题定义
当我从Script-3调用Script-2中的函数时,它似乎没有获取实例变量,我的函数失败了,即我收到一个异常“hmTCResult未设置为对象的实例”。请注意,相同的变量hmTCResult在Script 1中运行良好。
我已经阅读了JavaScript中的范围和上下文,但由于IDE中没有明确显示,我还没有突破它。
如果需要,我很乐意提供更多信息。
Script-2
不是有效的JavaScript标识符。请将其命名为Script2
或Script_2
。 - J. K.