Java脚本错误-can't将未定义转换为对象

Java Script error - can't convert undefined to object

本文关键字:未定义 转换 对象 脚本错误 -can Java      更新时间:2023-09-26

我在尝试运行这段代码时出现"无法将未定义转换为对象"错误。我不是程序员,几乎不会编码,所以我的问题可能很愚蠢/无法回答,对此我深表歉意。

代码:

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

我真的不知道这是否足以为你找到答案——如果有帮助的话,我可以发布更多的代码。

也许对于这样一个普通程序员会知道的错误,有一些通用的答案,但像我这样的傻瓜会忘记吗?

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

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

该函数每秒调用一次,它调用AI逻辑函数,通过向AI函数提供NPCid来在网格上移动10个NPC。脚本在这里失败,但并不总是如此——通常一两个NPC会执行一个步骤,然后函数才会失败。

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