代码之家  ›  专栏  ›  技术社区  ›  Shaun Mundi

检查类类型是否在javascript命名空间中可用

  •  0
  • Shaun Mundi  · 技术社区  · 15 年前

    在尝试通过javascript中的新关键字实例化类类型之前,我想检查它是否是可实例化的。

    例如

    var geocoder = new GClientGeocoder();
    如果gclientgeocoder类在命名空间中不可用,将失败。

    JavaScript的惯用方法是什么?

    3 回复  |  直到 15 年前
        1
  •  2
  •   Brian Mains    15 年前

    你应该能够做到:

    如果(!!gClientEncoder)

    或:

    如果(类型为(gclientcoder)!=“未定义”)

        2
  •  2
  •   nemisj    15 年前

    在javascript中,任何函数都可以是构造函数。这意味着您不能假定函数是一个“类”。您可以尝试检查类型、用try/catch块包围实例化并检查返回值,但不能超过这个值。即使这样,你也不能预测函数不仅仅是 new (function(){});

        3
  •  0
  •   Darin Dimitrov    15 年前
    function classExists(c) { 
        return typeof(c) === "function" && 
               typeof(c.prototype) === "object") ? true : false; 
    }