我想在尝试通过javascript中的new关键字对其进行实例化之前检查类类型是否可以实例化。
例如
var geocoder = new GClientGeocoder();
如果GClientGeocoder类在命名空间中不可用,则会失败。
这样做的javascript惯用方法是什么?
答案 0 :(得分:2)
你应该可以这样做:
if(!! GClientEncoder)
或:
if(typeof(GClientEncoder)!==“undefined”)
答案 1 :(得分:2)
在JavaScript中,任何函数都可以是构造函数。这意味着您不能认为该功能是“类”。您可以尝试使用try / catch块检查类型,环绕实例化并检查返回值,但不能更多。即使这样,你也无法预测这个功能不只是new (function(){});
答案 2 :(得分:0)
function classExists(c) {
return typeof(c) === "function" &&
typeof(c.prototype) === "object") ? true : false;
}