我正在调试一个用Pixi.js制作的游戏生产代码。为了测试某些功能,我想从控制台调用一些框架函数。在下面的代码中,有"Move"类的缩小版本,当单击画布完成时调用。 此构造函数由其他类调用,因此这些e, i, s, n
参数来自另一个类。当我输入MyGame["Move"](arg1,arg2,arg3,arg4(;这个函数应该可以工作。虽然第 3 和第 4 个参数是已知的,但我不知道如何传递那些生成的 e 和 i 参数。
! function (t) {
class e {
constructor(e, i, s, n) {
this.gameObject = e,
this.options = n,
this.goPositionPath = i || {
x: [],
y: []
},
this.goPosition = s || {
x: i[i.x.length - 1],
y: i[i.y.length - 1]
},
this.init()
}
init() {
return __awaiter(this, undefined, undefined, function* () {
let generatePath = yield this.generatePath();
if (generatePath && (this.goPositionPath = generatePath), this.sendRequestToBackend(), this.options.waitBackend) return this.gameObject.currentMove = null;
this.editPath(), this.calculatePathDistanceAndTime(), this.initAnimation()
})
}
generatePath() { /* ... */ }
sendRequestToBackend () { /* ... */ }
// ...
// Other functions...
// ...
}
// ...
// Some logic
// ...
t.Move = e
}(MyGame || (MyGame = {}));
var MyGame;
有没有办法从控制台调用这些函数,并提供可用的游戏信息?
大多数框架通过将所有代码包装在闭包中来防止污染全局空间。 在调试时解决此问题的最佳方法是使用调试器(在浏览器中(。
例如,您可以添加断点,当执行超过该断点时,您可以在控制台中与断点相同的空间中运行自己的命令。