我在以下代码中收到“无法读取未定义的属性”错误。
调用initFromServer()
会从服务器获取模型。但最终发生的是,当调用init()
时,参数模型是未定义的。使用console.log
来确定发生了什么,它似乎在确定模型未定义之前永远不会到达Proxy.getModel()
函数。
我不完全确定发生了什么。还有很多其他功能,还有我没有插入的功能。希望这是有道理的。
ClientModel.prototype.initFromServer = function(success) {
this.getProxy().getModel(this.init(), success());
}
ClientModel.prototype.init = function(model) {
this.setMap(new catan.models.Map(model.map.radius));
};
在我们的代理文件中:
Proxy.prototype.getModel = function(update, success) {
jQuery.get("/game/model", function(data) {
update(data);
success(data);
});
};
答案 0 :(得分:1)
当您在init()
中调用initFromServer()
时,您不会传递任何参数。
在init()
函数中,您访问model
作为第一个参数...
ClientModel.prototype.initFromServer = function(success) {
this.getProxy().getModel(this.init(), success());
|
+---- No Argument.
}
ClientModel.prototype.init = function(model) {
|
v
this.setMap(new catan.models.Map(model.map.radius));
|
+----> Ups.
};