Java Script错误 - 无法将undefined转换为object

时间:2012-07-08 12:44:18

标签: javascript undefined

尝试运行这段代码时,我得到“无法将undefined转换为object”错误。我不是程序员,几乎不能编码,因此我的问题可能是非常愚蠢/无法回答我非常抱歉。

代码:

if (path == F[0])
    {
        //go N
        if (pointAy > 0) 
        {
            if (!(PS.BeadData(pointAx, pointAy - 1) === "blocked")) 
            {
                // Set bead to Previous State
                PS.BeadColor(pointAx, pointAy, previous_bead_NPC[NPCid][2]);
                PS.BeadData(pointAx, pointAy, 0);
                PS.BeadGlyph(pointAx, pointAy, " ");                 
                // Increment
                pointAy -= 1;
                // Place NPC
                MakeNPC(pointAx, pointAy, NPC[NPCid][2], NPC[NPCid][3], NPC[NPCid][4], NPC[NPCid][5], 1);
            }
        }
    }

无法确定这是否足以为您找到答案 - 如果有帮助,我可以发布更多代码。

也许正常的程序员会知道这样的错误有一些通用的答案,但像我这样的菜鸟会忘记吗?

UPDATE 好的,通过逐步执行,我发现错误在不同的函数中弹出,即使禁用上面的代码也不会弹出错误。这是弹出错误的函数:

PS.Tick = function ()
{
"use strict";
for (var NPCid = 0; NPCid < 10; NPCid++)
    {
        NPCAI(NPCid);
    };
};

此功能每秒调用一次,它调用AI逻辑功能,通过向AI功能提供NPCid,在网格上移动10个NPC。脚本在这里失败,但并非总是如此 - 通常一个或两个NPC会迈出一步,然后才会失败。

1 个答案:

答案 0 :(得分:0)

如果您使用的是Chrome或Firebug,则可以单步执行JavaScript代码。在Chrome上,打开工具图标(右上角的扳手),然后从下拉菜单和“开发人员工具”中选择“工具”,启用开发人员工具。在底部,您应该在屏幕下方看到一个用于脚本的按钮。点击它并导航到您的页面。当您看到JavaScript文件打开它并在“if”语句中放置断点时。重新加载页面,然后在调试器停止代码时查看PS和NPC的值。