определяем number string array object function
определяем number string array object function
by Сергей Тарасевич
JavaScript
// определяем number string array object function
function obj(a) {
var b = typeof a;
if ("object" == b) {
if (a) {
if (a instanceof Array) {
return "array";
}
if (a instanceof Object) {
return b;
}
var c = Object.prototype.toString.call(a);
if ("[object Window]" == c) {
return "object";
}
if ("[object Array]" == c || "number" == typeof a.length && "undefined" != typeof a.splice && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("splice")) {
return "array";
}
if ("[object Function]" == c || "undefined" != typeof a.call && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("call")) {
return "function"
}
} else {
return "null";
}
} else {
if ("function" == b && "undefined" == typeof a.call) {
return "object";
}
}
return b
}
var a = {
a : function() {},
b : 1,
c : '1',
d : [1, 'fdsf'],
i : {
a : 1,
b : ''
}
}
console.log(obj(a));
console.log(obj(a.a));
console.log(obj(a.b));
console.log(obj(a.c));
console.log(obj(a.d));
console.log(obj(a.d[0]));
console.log(obj(a.d[1]));
console.log(obj(a.i));
console.log(obj(a.i.a));
console.log(obj(a.i.b));