請幫忙解決問題。我創建棋盤和使用單^如何更改對象中代碼的順序?
Board = function(){
var self = this;
self.fillBoard = function(){
for (var x = 0; x < self.x; x++){
self.board[x] = [];
for (var y = 0; y < self.y; y = y + 2){
x%2 ? self.board[x][y] = 1 : self.board[x][y] = 0;
}
for (var y = 1; y < self.y; y = y + 2){
x%2 ? self.board[x][y] = 0 : self.board[x][y] = 1;
}
}
}
self.x = 8;
self.y = 8;
self.board = [];
self.fillBoard();
self.outputBoard = function(){
for (var x = 0; x < self.x; x = x + 1){
for (var y = 0; y < self.y; y = y + 1){
if(self.board[x][y] == 1){
$('#board').append('<div class="board_cell" style="left: ' + x * 40 + 'px; top: ' + y * 40 + 'px"></div>');
};
}
}
}
}
Board.getInstance = function(){
if(!this.instance){
this.instance = new this();
}
return this.instance;
};
// ------------------------------------------------------------------------------------ init
$(document).ready(function(){
board1 = Board.getInstance();
board1.outputBoard();
board2 = Board.getInstance();
board2.outputBoard();
console.log(board1 == board2);
});
但對於目標板初始化塊
self.x = 8;
self.y = 8;
self.board = [];
self.fillBoard();
比self.fillBoard()
下面我需要移動初始化模塊上:
Board = function(){
var self = this;
self.x = 8;
self.y = 8;
self.board = [];
self.fillBoard();
self.fillBoard = function(){
for (var x = 0; x < self.x; x++){
self.board[x] = [];
for (var y = 0; y < self.y; y = y + 2){
x%2 ? self.board[x][y] = 1 : self.board[x][y] = 0;
}
for (var y = 1; y < self.y; y = y + 2){
x%2 ? self.board[x][y] = 0 : self.board[x][y] = 1;
}
}
}
..............
...........
但控制檯輸出錯誤信息:
Uncaught TypeError: self.fillBoard is not a function
PS:codepen在這裏
顯然它不是」噸,你期望什麼??!你調用函數然後定義它。你猜結果? – nicael
當你調用'self.fillBoard();'時,你還沒有定義'function' ... – somethinghere
爲什麼你不把它聲明爲原型的一部分? – epascarello