[英]Type Error in javascript: Cannot read Property of undefined
我有一個像這樣的javascript函數:
var usedNums= new Array(76);
function setSquare(thisSquare)
{
var currSquare = "square"+ thisSquare;
var colPlace = new Array(0,1,2,3,4,0,1,2,3,4,0,1,2,3,4,0,1,2,3,4,0,1,2,3,4);
var colBasis = colPlace[thisSquare] * 15;
var newNum;
do{
newNum = colBasis + getNewNum() + 1;
}while(usedNums[newNum]); //UnCaught TypeError here
usedNums[newNum] = true;
document.getElementById(currSquare).innerHTML = newNum;
}
錯誤提示:
無法讀取未定義的屬性“ 5”。
我已經使用console.log語句進行了檢查,並且上面的所有變量都在獲取期望值。
我知道什么是Type Error,但不確定它在哪里中斷。
**編輯:**這是完整的腳本:
window.onload = new newCard;
var usedNums= new Array(76);
function newCard()
{
if(document.getElementById){
for(var i =0; i<24;i++)
{
console.log("Value of I is " + i);
setSquare(i);
}
}else{
alert("Sorry, your browser does not support this script");
}
}
function setSquare(thisSquare)
{
console.log("thissquare" + thisSquare);
var currSquare = "square"+ thisSquare;
console.log("currsquare" + currSquare);
var colPlace = new Array(0,1,2,3,4,0,1,2,3,4,0,1,2,3,4,0,1,2,3,4,0,1,2,3,4);
console.log("colplace" + colPlace);
var colBasis = colPlace[thisSquare] * 15;
console.log("colbasis"+ colBasis);
var newNum;
do{
newNum = colBasis + getNewNum() + 1;
console.log("new nUM" + newNum);
}while(usedNums[newNum]);
usedNums[newNum] = true;
document.getElementById(currSquare).innerHTML = newNum;
}
function getNewNum()
{
var a = Math.floor(Math.random() * 15);
console.log("random number" + a);
return a;
}
這行:
window.onload = new newCard;
是:
newCard
作為構造函數(不是) onload
由於您在newCard
調用newCard
,因此它將在到達下一行之前運行:
var usedNums= new Array(76);
因此,當您嘗試從中讀取usedNums
時,它是未定義的。
您需要將newCard
函數分配為加載處理程序。 所以不要調用它:
window.onload = newCard;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.