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();
}

何らかの理由で、「start」をthis.open_nodeにプッシュし、その値をログに記録すると、「undefined」が表示されます。しかし、いくつかのバグテストの後で、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 に答える