1

我正在尝试使用 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

然后我将我的 screep 帐户链接到该存储库,使用“生成”文件夹作为链接文件夹以导入游戏。

为了得到那个错误,我开始一个自定义模拟,然后在 screep 控制台中做一个简单的require("screeplogic")

4

1 回答 1

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);
于 2015-02-02T13:37:27.490 回答