我想检查一个类类型是否甚至在尝试通过JavaScript中的新关键字实例化之前是可实例化的。如果的GClientGeocoder类不是在命名空间中可用检查类名是否可用于Javascript命名空间
例如
var geocoder = new GClientGeocoder();
将失败。
什么是JavaScript惯用的方式来做到这一点?
我想检查一个类类型是否甚至在尝试通过JavaScript中的新关键字实例化之前是可实例化的。如果的GClientGeocoder类不是在命名空间中可用检查类名是否可用于Javascript命名空间
例如
var geocoder = new GClientGeocoder();
将失败。
什么是JavaScript惯用的方式来做到这一点?
你应该能够做到:
如果(!GClientEncoder)
或:(!typeof运算(GClientEncoder)== “未定义”)
如果
function classExists(c) {
return typeof(c) === "function" &&
typeof(c.prototype) === "object") ? true : false;
}
在JavaScript中,任何函数都可以是构造函数。这意味着你不能认为这个函数是一个“类”。您可以尝试使用try/catch块检查类型,环绕实例,并检查返回值,但不会超过此值。即使那样,你也无法预测该功能不仅仅是new (function(){});
你的意思是GClientGeocoder? – 2010-01-04 23:12:34
:-)我使用Google API,我经常这样做......是的,这就是我的意思。 – 2010-01-05 00:02:12