2011-02-04 123 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吗? – 2011-02-04 08:42:06

+1

我建议你专注于错误信息。如果board_pt是'未定义的',那么它可能意味着它说的是什么。 – 2011-02-04 08:44:37

回答

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

从您的意见,你必须定义previous_boardPoint作为一个数组。要在JavaScript中声明数组,您需要在代码中有 - var previous_boardPoint = [];。也有定义的每个元素(如果您有任何),如previous_boardPoint[0] = val1; previous_boarPoint[1] = val2;

如果这些东西是不是在你的代码,然后在所有可能的机会,你会得到board_pt为未定义在函数set_boardPoint