Первое решение, которое приходит в голову – использование typeof – не подходит, поскольку в данном случае тип всегда будет object.
Можно задействовать метод instanceof:
var arr = new Array; var notarr = 5; print (arr instanceof Array); print (noarr instanceof Array);
Однако данный способ не подходит для определения экземпляра Object, потому что все классы, в том числе Array, унаследованы от него.
Так же можно использовать следующую конструкцию:
var arr = new Array; Object.prototype.toString.call(arr) == '[object Array]'
В этом случае можно отличать экземпляры Object по строке [object Object].