callbackhell,
вариант решения ...
var arr = [];
function find(arr, obj) {
return arr.every(function(el) {
return el.a != obj.a || el.b != obj.b
})
}
var obj = {a: 1, b: 1};
find(arr, obj) && arr.push(obj);
obj = {a: 2, b: 1};
find(arr, obj) && arr.push(obj);
obj = {a: 1, b: 1};
find(arr, obj) && arr.push(obj);
obj = {a: 1, b: 1};
find(arr, obj) && arr.push(obj);
obj = {a: 2, b: 2};
find(arr, obj) && arr.push(obj);
alert(JSON.stringify(arr));
причём тут прототипы не понимаю