1

我得到没有方法错误

这是示例代码

var snake = function(){

    this.initialize = function(){
        // initalize
    };
    this.start = function() {
        this.initialize();
    };

};

var s = new snake();

var startButton = document.getElementByID("start");

startButton.addEventListener('click',s.start,false);

所以当我点击开始按钮时,我得到了

Uncaught TypeError: Object # has no method 'initialize'

我怎样才能解决这个问题

4

2 回答 2

1

尝试

startButtons.addEventListener('click', function() { s.start() }, false);

除非您使用,否则函数中的thisin 将成为输入bind

于 2013-07-21T05:32:32.213 回答
0

因为this. 使用私有变量(snk)来确保您正在访问蛇:

var snake = function(){

    var snk = this;

    this.initialize = function(){
        // initalize
    };

    this.start = function() {
        snk.initialize();
    };
};

var s = new snake();

var startButton = document.getElementByID("start");

startButton.addEventListener('click',s.start,false);
于 2013-07-21T05:51:07.723 回答