2010-01-04 2 views
0

Я хотел бы проверить, является ли тип класса даже реальным, прежде чем пытаться создать его через новое ключевое слово в javascript.Проверка наличия типа класса в пространстве имен Javascript

Например

var geocoder = new GClientGeocoder();
потерпит неудачу, если класс GClientGeocoder не в пространстве имен.

Что такое идиоматический способ javascript для этого?

ответ

2

Вы должны быть в состоянии сделать:

если (!! GClientEncoder)

или: (! TypeOf (GClientEncoder) == "не определено")

если

+0

Возможно, вы имели в виду GClientGeocoder? –

+0

:-) Я использовал API Google, и я постоянно это делаю ... да, вот что я имел в виду. –

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

В JavaScript любая функция может быть конструктором. Это означает, что вы не можете предположить, что функция является «классом». Вы можете попытаться проверить тип, объемный экземпляр с помощью блока try/catch и проверить возвращаемое значение, но не более того. Даже тогда вы не можете предсказать, что функция не только new (function(){});

Смежные вопросы