我试图理解可读性与在代码中重复自己之间的最佳结合。
我正在用Javascript创建Conway的生活游戏。我的函数一遍又一遍地使用许多相同的变量,就像这样……
const BOARD_HEIGHT = 50
const BOARD_WIDTH = 50
let gameBoard = createGameBoard();
function createGameBoard(width, height){}
function randomizeGameBoard(gameBoard, width, height){}
function updateGameBoard(gameBoard, width, height){}
function runGameLoop(gameBoard, width, height){}
我应该这样声明函数吗?在所有函数都采用完全相同的参数的地方,还是我的函数不应该采用参数,而是直接访问常用变量(全局变量)?
function createGameBoard() {do stuff with BOARD_WIDTH, BOARD_HEIGHT};
function randomizeGameBoard() {do stuff with gameBoard};
答案 0 :(得分:2)
全局变量和传递变量都不是到达此处(IMO)的方法。如果仔细观察,宽度和高度实际上是gameBoard的属性...,所有这些功能实际上都可以是类的方法:
class GameBoard {
constructor(width, height) {
this.width = width; this.height = height;
//...
}
randomize() { /*...*/ }
update() { /*...*/ }
}
const board = new GameBoard();
如果只有一块木板,那么一个物体就足够了:
const board = {
width: 50, height: 50,
randomize() { /*...*/ },
update() { /*...*/ },
};