使用Scala.js为Screep生成逻辑时,如何解决此错误?

时间:2015-01-31 18:40:18

标签: scala screeps scala.js

我正在尝试使用Scala.js为screep生成逻辑,但是当我尝试导入生成的javascript代码时,我遇到以下错误:

TypeError: Cannot read property 'Object' of undefined
at eval:1:358
at screeplogic:45:322
at m:4:3096
at console:45
at Object.c.runCode:4:6811

首先,我创建了一个简单的Scala.js项目:

https://github.com/Voltir/screepslogic

然后我使用"生成的#34;将我的screep帐户链接到该repo。将文件夹作为要导入游戏的链接文件夹。

要获得该错误,我启动自定义模拟,然后在screep控制台中执行简单的require("screeplogic")

1 个答案:

答案 0 :(得分:0)

您的堆栈跟踪表明该错误不在Screeps代码中,而在您的错误中:

TypeError: Cannot read property 'Object' of undefined
at eval:1:358
at screeplogic:45:322  <-- here it is

如果检查screeplogic:45:322中的指定位置,您可以看到您的转换程序尝试使用this变量调用生成的闭包函数:

(function() { ....... }).call(this);

但是在模拟模式下,全局上下文不存储在this中,因此此调用失败。如果你明确地传递global变量,那么一切似乎都可以正常工作:

(function() { ....... }).call(global);