对象#<htmlinputelement>没有方法'initialize'</htmlinputelement>

时间:2013-07-21 05:28:10

标签: javascript html events typeerror

我得到没有方法错误

这是示例代码

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);

所以,当我点击开始按钮时,我正在

  

未捕获的TypeError:对象#没有方法'initialize'

我该如何解决这个问题

2 个答案:

答案 0 :(得分:1)

尝试

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

除非您使用bind

,否则函数中的this将成为输入

答案 1 :(得分: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);