我正在製作一個html5 javascript遊戲(不是用畫布),我需要一個類用於我的對象。該類是DPixel,所有對象都存儲在一個名爲grid的數組中。這裏是類:Javascript對象在訪問屬性時變成undefined
var grid = new Array();
function DPixel(data, x, y, node) {
this.xpos = x;
this.ypos = y;
this.elem = node;
this.type = data[0];
/*The pixel will transfer colors as normal*/
if (this.type === "normal") {
this.type = "normal";
this.red = data[1];
this.green = data[2];
this.blue = data[3];
}
/*The pixel will not transfer colors to other pixels*/
else if (this.type === "border") {
this.type = "border";
this.red = 224;
this.green = 210;
this.blue = 54;
}
}
數組的實際人口處於設置功能,不會被調用,我測試過,一切都很好在那裏。
function setup() { for(var x = 0; x < gridSize; x++) { for(var y = 0; y < gridSize; y++) { var red = Math.floor(Math.random()*256); var green = Math.floor(Math.random()*256); var blue = Math.floor(Math.random()*256); totalRed += red; totalGreen += green; totalBlue += blue; $("#grid").append("<div></div>"); $("#grid div:nth-child(" + (x * gridSize + y + 1) + ")").css("background-color", "rgb(" + red + "," + green + "," + blue + ")"); grid[grid.length] = (new DPixel(["normal", red, green, blue], x, y, $("#grid div:nth-child(" + (x * gridSize + y + 1) + ")"))); } } }
我從Chrome中得到的錯誤是:「遺漏的類型錯誤:無法讀取屬性未定義‘類型’」在它運行每秒幾次我的更新方法。
我曾嘗試的console.log()在dpixel變量,和鉻打印的所有它的屬性,因爲它通常會。但是當我嘗試訪問一個屬性時,它給了我錯誤。這對某個人來說似乎很明顯,但是當我花費數小時調試時,我必須跳過某些東西,所以不要害羞!
你粘貼了一半的代碼。你在哪裏定義equlized,gridSize和grid?這就是你的問題所在。 – mpm
你在哪裏填充dpixel?你正試圖從數組中獲取它,但是你在哪裏實際創建它並將它推到數組? – webdev
很抱歉忘記了添加該零件。 –