У меня есть эта функция в моем объекте:Почему это не признается функцией?
var time = {
warps : 3,
warpCounter : 50,
warp : function(){
if (this.warps > 0){
this.warps--;
this.warpLoop = 50;
this.warpLoop();
}
},
warpLoop : function(){
setTimeout(function() {
this.increment();
if (warpCounter--){
this.warpLoop();
}else{
if(this.warps > 0){
htmlInteraction.enableButton('warp-button');
}
}
}, 100);
},
};
Когда я пытаюсь вызвать его из другого метода (с помощью this.warpLoop()
) я получаю:
Uncaught TypeError: Property 'warpLoop' of object #<Object> is not a function
Почему это?
@dystroy Я добавил весь объект. – fredley
Вам нужно прочитать, как это работает в Javascript. Это может быть довольно запутанным, пока вы не поймете это (и еще более сбиваете с толку, если думаете, что понимаете это!). В Интернете есть много и много * ресурсов; это очень распространенная проблема. [Это будет хорошей отправной точкой] (http://stackoverflow.com/questions/3127429/javascript-this-keyword), но есть еще много, если вы его ищете. – Spudley