代码之家  ›  专栏  ›  技术社区  ›  Domenic

这个“预期对象”JavaScript错误怎么可能?

  •  0
  • Domenic  · 技术社区  · 15 年前

    显然,这行代码正在触发“预期对象”:

    var bPid = (b != null && typeof (b.processId) == "number") ? b.processId : 0;
    

    不幸的是,我无法在调试器中单步执行代码,因为这是一个间歇性错误,显示在我正在编写的Windows SideShow小工具中。但是,我想应该有人能告诉我,考虑到我正在进行的所有检查都试图防止类似的事情发生,如何能够得到预期的对象。

    4 回复  |  直到 15 年前
        1
  •  2
  •   Tomalak    15 年前

    你在打电话吗 b.processId 不确定 b 是一个物体。

        2
  •  4
  •   Seb    15 年前

    看来 b 不是一个物体,所以我 alert(b)

    即使指定了一个值,它也可能不是对象,因此您也可以请求 typeof(b) == 'object' .

        3
  •  2
  •   Gumbo    15 年前

    B 可能不存在。试试这个:

    var bPid = (typeof b != "undefined" && typeof b.processId == "number") ? b.processId : 0;
    
        4
  •  2
  •   Kimmo Puputti    14 年前

    检查b变量是否为“truthy”(用道格拉斯·克罗克福德的话说)的最安全(也是最短)的方法是

    var bPid = (b && typeof (b.processId) == "number") ? b.processId : 0;