3

我的代码看起来像这样:

function pathfind (start,end,map)
{
    this.Init = function ()
    {
       this.open_node = new Array();
       this.open_node.push(start);
       console.log(this.open_node);
       this.Loop();
    }
    this.Loop = function ()
    {
       //Some code here
    }
    this.Init();
}

出于某种原因,当我将“开始”推送到 this.open_node 并记录它的值时,我得到“未定义”。但是,经过一些错误测试后,我意识到注释掉 this.Loop(); 在 this.Init 中,push 正常运行,console.log 按原样返回 [start]。谁能解释为什么会发生这种行为?

编辑:我打电话

pathfind({x:2,y:2},{x:24,y:24},parsemap(25,25));
4

2 回答 2

6

经过进一步研究,我发现 console.log 不会立即在 Chrome 中执行。因此,过时的报告。

于 2012-10-05T00:40:19.600 回答
0

您的代码执行pathfind返回的函数undefined(应该是这种方式),但您等待this.Init函数的结果。应该可能执行它而不是pathfind.

于 2012-10-05T00:33:01.647 回答