azzz
31.05.2011 05:40 Psi+
JavaScript меня печалит:
function Foobar(){}
var obj = new Foobar();
console.log(typeof obj) // ← тип переменной — object. Ну почему так плохо, а? Почему не Fobar тип? Почему в js если не базовый тип, так object? :(
Неудобно иногда, да.
т.е. никак не узнать класс, да?..
Можно проверить, является ли он экземпляром Foobar
Можно выколупать регэкспом из obj.__proto__.constructor.toSource() :-)
Это-то можно... Беда, короче. Эх
Держи:-)
Object.prototype.getClass = function(){
var m = this.__proto__.constructor.toSource().match(/^function\s+(\w+)/);
if (1 in m) return m[1];
}
obj.getClass()
хе, toSource() нет в V8:)
toString
О, а toString() конструктора как раз возвращает код