简单方法调用中的TypeError

时间:2012-03-02 17:55:24

标签: javascript

[解决]

定义类

var Stone = function(args){

    var _this = this;
    inherit(_this, args); //just copy all attributes from args to _this

    _this.w = 32;
    _this.h = 32;
    _this.obstacle = true;
    _this.padding = 0;
    _this.sprite = {
        x: 32,
        y: 0
    };

    _this.draw = function(){
        console.log(_this);
        CanvasPainter.sprite("background", _this.sprite.x, _this.sprite.y,
                             _this.x, _this.y, _this.w, _this.h);
    };
};

定义对象

var stone = new Stone({
    x: 480,
    y: 320
});

调用方法

stone.draw(); //throws "TypeError: Type error"

我已经知道我做的事情很愚蠢。你能帮我找到吗?

这是石头对象:

stone = {
  draw: function (),
  h: 32,
  obstacle: true,
  padding: 0,
  sprite: {x: 32, y: 0},
  w: 32,
  x: 480,
  y: 320
}

实际上错误来自CanvasPainter.draw 是我做过的蠢事

其他一切都很好,谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

inherit函数定义在哪里?该功能对我来说很好。唯一的区别是inherit而不是$.extend(_this, args)。 (参见jQuery的扩展http://api.jquery.com/jQuery.extend/