Как раз сами объекты сравниваются, а они получаются по ссылке. Вы пытаетесь получить индекс объекта, которого де-факто нет в массиве
a = {}
b = {}
c = {}
alert([a, b, c].indexOf(c))
То есть, у вас там просто ахинея вместо кода. конструкция {a: 1} это сахар для new function(){this.a = 1}