нужна помощь в понимании clousures и prototypes, я вызываю метод цикла внутри функции, проблема в том, что когда я вызываю «loop» возвращает «is not функция»вот пример:Функция вызова protoype через «this» return «не является функцией»
window.onload= startGame();
var theGame;
function startGame(){
theGame = new game();
theGame.loop(); /*im calling the method*/
}
function game(){
this.canvas=document.getElementById("breakout");
this.context = this.canvas.getContext('2d');
this.canvas.width=window.innerWidth;
this.canvas.height=window.innerHeight;
// this.loop(); /*¿can i call it here too?*/
this.speed = 100;
}
game.prototype.loop = function() {
console.log(this.speed+=1);
var self = this;
requestAnimationFrame(function(){
self.loop();
});
};
, когда я называю„“метод браузеров ошибки „РАМОЧНАЯ Uncaught TypeError: theGame.loop не является функцией“
Он должен быть 'window.onload = StartGame;', без вызова функции там. – Bergi
Вопрос о проблемах, связанных с вызовом функции преждевременно, задавался так много раз. Я думаю, нам нужно каноническое Q & A для этого (или, по крайней мере, определить, какой из существующих он должен быть). –
Или переместите 'startGame()' до конца, после определения 'game.prototype.loop'. – Oriol