Типы объектов в JavaScript
Простой и маленький класс для определения типов объектов в JavaScript. Если вам не нужны функции типа isArray() просто удалите их. Да, хочу заранее оговориться, что класс делался для своих нужд и возможно покажется кому-то недостаточно универсальным.
Я НЕ ТЕСТИРОВАЛ этот код на предмет работы в случае cross-windows скриптинга, но теоретически все должно быть нормально. Если кто-то проверит это, не поленитесь, напишите мне на www@andreyfedorov.com.
function Utils() {}
Utils.TYPE_ARRAY = 1;
Utils.TYPE_OBJECT = 2;
Utils.TYPE_STRING = 3;
Utils.TYPE_NUMBER = 4;
Utils.TYPE_BOOLEAN = 5;
Utils.TYPE_FUNCTION = 6;
Utils.TYPE_DATE = 7;
Utils.TYPE_NULL = 8;
Utils.TYPE_UNDEFINED = 9;
Utils.getType = function(obj) {
if (obj != null) {
switch (obj.constructor) {
case Array:
return Utils.TYPE_ARRAY;
case String:
return Utils.TYPE_STRING;
case Number:
return Utils.TYPE_NUMBER;
case Boolean:
return Utils.TYPE_BOOLEAN;
case Function:
return Utils.TYPE_FUNCTION;
case Date:
return Utils.TYPE_DATE;
default:
return Utils.TYPE_OBJECT;
}
} else if (obj === null) {
return Utils.TYPE_NULL;
} else {
return Utils.TYPE_UNDEFINED;
}
};
Utils.isArray = function(obj) {
return (Utils.getType(obj) === Utils.TYPE_ARRAY);
};
Utils.isString = function(obj) {
return (Utils.getType(obj) === Utils.TYPE_STRING);
};
Utils.isNumber = function(obj) {
return (Utils.getType(obj) === Utils.TYPE_NUMBER);
};
Utils.isBoolean = function(obj) {
return (Utils.getType(obj) === Utils.TYPE_BOOLEAN);
};
Utils.isFunction = function(obj) {
return (Utils.getType(obj) === Utils.TYPE_FUNCTION);
};
Utils.isDate = function(obj) {
return (Utils.getType(obj) === Utils.TYPE_DATE);
};
Utils.isObject = function(obj) {
return (Utils.getType(obj) === Utils.TYPE_OBJECT);
};
Utils.isNull = function(obj) {
return (Utils.getType(obj) === Utils.TYPE_NULL);
};
Utils.isUndefined = function(obj) {
return (Utils.getType(obj) === Utils.TYPE_UNDEFINED);
};

