Я не думаю, что это возможно в Javascript из-за прототипно-ориентированной природы языка. Есть несколько вещей, которые вы можете сделать, чтобы определить, принадлежит ли объект существующему классу, который вы знаете, например:
if (a.constructor == Poop) {
alert("This will work, but I don't really want any Poop.");
}
Однако на самом деле это не работает для определения класса неизвестного объекта. Есть и другие прототипы, которые вы можете сделать, чтобы проверить класс, который включает toString()
, но они работают только для встроенных объектов, а не для пользовательских классов, и это недостаток прототипирования, который не характерен для MooTools.
Если вы посмотрите 5-е издание Javascript, The Definitive Guide , стр. 174, глава 9.7, там будет хорошее обсуждение. По сути, рекомендуется заполнить пользовательские классы свойством classname
и переопределить метод базового класса объектов toString()
по умолчанию, чтобы проверить это свойство при вызове его в пользовательском классе.