Javascript 为什么可以';我的&x27;getData';我的代码可以访问函数吗?

Javascript 为什么可以';我的&x27;getData';我的代码可以访问函数吗?,javascript,Javascript,对于大学,我必须制作一个带有MVC风格编码的javascript游戏。(模型、视图、控制器)。我对这个很陌生,所以请不要太苛刻。我得到以下错误:“UncaughtTypeError:无法读取未定义的属性'getData'。有人能帮我找出这个问题吗?我确信我的代码中充满了错误。我正在尝试在画布上绘制播放器模型。任何和所有的帮助将不胜感激!这是我的密码: var GOBLINS = GOBLINS || {}; GOBLINS.View = function() {}; GOBLINS.View

对于大学,我必须制作一个带有MVC风格编码的javascript游戏。(模型、视图、控制器)。我对这个很陌生,所以请不要太苛刻。我得到以下错误:“UncaughtTypeError:无法读取未定义的属性'getData'。有人能帮我找出这个问题吗?我确信我的代码中充满了错误。我正在尝试在画布上绘制播放器模型。任何和所有的帮助将不胜感激!这是我的密码:

var GOBLINS = GOBLINS || {};

GOBLINS.View = function() {};

GOBLINS.View.prototype.draw = function(objects) {

    for(i=0; i < objects.length; i++) {
          ctx.drawImage(objects[i],0,0);
    };
};

GOBLINS.View.prototype.update = function(data){
    this.draw(data); 
};

GOBLINS.Model = function() {
    this.data = [];
};

GOBLINS.Model.prototype.player = {
    hitPoints: 25,
    x: 15,
    y: 20,
    img: new Image(),
    push: function() {
    data.push(GOBLINS.Model.player.img);
    }
};

GOBLINS.Model.prototype.getData = function(recall){
      recall(this.data);
};

GOBLINS.Controller = function() {
    var M = new GOBLINS.Model();
    var V = new GOBLINS.View();

    this.mainLoop();
};

GOBLINS.Controller.prototype.mainLoop = function() {
    var self = this;   

    this.M.getData(function(data){
        self.V.update(data);
    });

    window.requestAnimationFrame(function(){
        self.mainLoop();
    });
};

window.onload = function() {
    var game = new GOBLINS.Controller();

    GOBLINS.Model.player.img.src = "Image/Player.png";
    var c=document.getElementById("gameCanvas");
    var ctx=c.getContext("2d");
};
var GOBLINS=GOBLINS | |{};
View=function(){};
GOBLINS.View.prototype.draw=函数(对象){
对于(i=0;i
因为
M
V
不属于
这个
。它们在本地的作用域是控制器方法

var M = new GOBLINS.Model();
var V = new GOBLINS.View();
应该是

this.M = new GOBLINS.Model();
this.V = new GOBLINS.View();

非常感谢你。我错误地写下了教师代码。