2011-02-04 3 views
1

배열에 함수를 전달하고 작업하려고하지만 board_pt가 정의되지 않는다는 오류가 발생합니다. 문제가 무엇입니까? 이 코드입니다 :javascript 함수 인수

function set_boardPoint(board_pt,turn) 
{ 
    var no = board_pt.number-1; 
    board[no].row = board_pt.row; 
    board[no].col = board_pt.col; 
    board[no].x = board_pt.x; 
    board[no].y = board_pt.y; 
    board[no].value = turn; 
    board[no].number = board_pt.number; 
} 

보드가 이미

+5

어떻게 set_boardPoint를 호출하고 있는지 보여줄 수 있습니까? –

+1

오류 메시지에 집중할 것을 제안합니다. board_pt가'undefined'이면, 아마도 그것이 말하는 것을 의미 할 것입니다. –

+0

var previous_boardPoint = 보드 [i]; –

답변

1

문제 정의 된 전역 배열 것은 그 board_pt 만 1 개 항목이 있으며,이 경우 JS 객체로 board_pt 알고

function set_boardPoint(board_pt,turn) 
{ 
    var no = board_pt.number-1; 
    if(board[no] != undefined) 
    { 
    board[no].row = board_pt.row; 
    board[no].col = board_pt.col; 
    board[no].x = board_pt.x; 
    board[no].y = board_pt.y; 
    board[no].value = turn; 
    board[no].number = board_pt.number; 
}else 
{ 
board.row = board_pt.row; 
    board.col = board_pt.col; 
    board.x = board_pt.x; 
    board.y = board_pt.y; 
    board.value = turn; 
    board.number = board_pt.number; 
} 
} 
0

board_pt이 실제 배열 인 경우 number이라는 속성은 없을 것입니다. length을 의미합니까?

+0

배열 보드 [i]에 board [i] .row, ... board [i] .number가 있고 이것을 다음과 같이 전달했습니다. previous_boardPoint = board [i]; 여기서 var previous_boardPoint = new Array(); –

+0

좋아, 내가 말했듯이, 나는 함수에 객체를 전달하고 있지만 여전히 board_pt는 정의되지 않았다. 실제로 board []는 객체의 배열이다. –

0

귀하의 의견에 따라 previous_boardPoint을 배열로 정의해야합니다. 자바 스크립트에서 배열을 선언하려면 코드에 - var previous_boardPoint = [];이 있어야합니다. 이러한 일들이 코드가 아닌 경우 previous_boardPoint[0] = val1; previous_boarPoint[1] = val2;

처럼 (어떤 경우) 또한 모든 가능성이 가능성에, 당신은 당신의 기능 set_boardPointboard_pt 정의되지 않은 얻을 것이다, 정의 된 각각의 요소를 가지고있다.