我的代码看起来像这样:
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();
}
出于某种原因,当我将“start”推入this.open_node并记录其值时,我得到“未定义”。但是,经过一些错误测试,我意识到这个评论出来了.Loop();在this.Init中导致push正常运行,console.log按原样返回[start]。任何人都可以解释为什么会发生这种行为?
编辑:我正在打电话pathfind({x:2,y:2},{x:24,y:24},parsemap(25,25));
答案 0 :(得分:5)
经过进一步研究后,我发现console.log不会立即在Chrome中执行。因此过时的报道。
答案 1 :(得分:0)
您的代码执行返回pathfind
的{{1}}函数(它应该是这样的),但是您等待undefined
函数的结果。应该执行它而不是this.Init
。