function getType (inst) {
return Object.prototype.toString.call(inst).slice(8, -1).toLowerCase();
}
typeof {} ----> 'object'
getType({}) ----> 'object'
typeof new Date() ----> 'object'
getType(new Date()) ----> 'date'
var ar2 = Object.create(Array.prototype);
Array.prototype.isPrototypeOf(ar2); ---> true
Array.isArray(ar2); ---> false // и тут мы случайно сломали свой полифил
ar2.test = 1;
ar2.push(1);
JSON.stringify(ar2); ----> {"1":1, "length":1, "test":1}
Object.prototype.toString.call(ar2); ----> "[object Object]"