Кто-нибудь видит ошибку в моем коде, которая запрещает изменение переменной «player1Bananas»? Все остальное в функции отлично работает.Переменная, не меняющаяся при вызове функции
//update playerStats arguments:
//banana is a banana object
//x and y are the banana's position
//players bananas is player1Bananas or player2Bananas,
//ballPosition is "left" or "right"
updatePlayerStats: function(banana, x, y, playersBananas, ballPosition) {
playersBananas += 1;
gameController.bananasTaken += 1;
banana.x = x;
banana.y = y;
gameController.player1Score = 0;
gameController.player2Score = 0;
gameController.setUpPaddles();
gameController.setUpBall(ballPosition);
},
gameController.updatePlayerStats(gameController.Banana1, 20, gameController.canvas.height - 20 - gameController.Banana1.height,
gameController.player1Bananas, "left");
Спасибо!
функция Причина получить его по значению. прочитайте: http://stackoverflow.com/questions/6605640/javascript-by-reference-vs-by-value – Cherniv
Я рекомендую вам создавать функции доступа для абстрагирования некоторых из вашего кода. Вы можете просто вызвать 'gameController.giveBanana()', который увеличит 'bananasTaken' и увеличит' playersBananas'. Это поможет вам позже, если вы когда-либо измените имя переменной или внесите какие-либо другие изменения. – Jared
@Jazza Это действительно хорошая идея, спасибо. – user2602079