开发者问题收集

无法将 undefined 或 null 转换为对象

2015-11-29
1497

不确定我在哪里出错:

test.js

731608249

game.js < /strong>

651100576

对于测试,我得到断言错误:

922291811

我以为我已经将其设置在我的start()方法,为什么我的测试仍然失败?

2个回答

您已将 hasStarted 的初始值分配给模块导出,它不会因调用 start() 而改变。

使用函数而不是变量来检索它,即:

module.exports = {
    start: start,
    started: function() { return hasStarted; }
};
Grozz
2015-11-29

由于您使用的局部变量是原始类型,因此在调用 start 方法后不会反映出来。js 中的原始类型是按值传递的。

var hasStarted = {
    isStarted: false
};
var game = {
    start: start,
    started: hasStarted
};

function start() {
    hasStarted.isStarted = true;
};

module.exports = game;

这将按您期望的方式工作

Devendiran Kumar
2015-11-29