2010-01-04 31 views
0

我想检查一个类类型是否甚至在尝试通过JavaScript中的新关键字实例化之前是可实例化的。如果的GClientGeocoder类不是在命名空间中可用检查类名是否可用于Javascript命名空间

例如

var geocoder = new GClientGeocoder();
将失败。

什么是JavaScript惯用的方式来做到这一点?

回答

2

你应该能够做到:

如果(!GClientEncoder)

或:(!typeof运算(GClientEncoder)== “未定义”)

如果

+0

你的意思是GClientGeocoder? – 2010-01-04 23:12:34

+0

:-)我使用Google API,我经常这样做......是的,这就是我的意思。 – 2010-01-05 00:02:12

0
function classExists(c) { 
    return typeof(c) === "function" && 
      typeof(c.prototype) === "object") ? true : false; 
} 
2

在JavaScript中,任何函数都可以是构造函数。这意味着你不能认为这个函数是一个“类”。您可以尝试使用try/catch块检查类型,环绕实例,并检查返回值,但不会超过此值。即使那样,你也无法预测该功能不仅仅是new (function(){});

相关问题