Вы можете перезаписать метод toString()
прототипов, чтобы создать уникальный хеш для каждого экземпляра. Э.Г.
A.prototype.toString = function() {
return /* something instance specific here */;
};
Даже a + b + c
будет работать тогда.
Обновление: Афаик, вы не можете получить уникальный идентификатор экземпляра (каким бы он ни был) в JavaScript. Однако вы можете назначить каждому экземпляру некоторый идентификатор.
Это работает, только если вы создаете объекты.
1018 * Е.Г. *
var addIdentityTracker = (function() {
var pad = "0000000000",
id = 1;
function generateId() {
var i = (id++).toString();
return pad.substr(0, 10 - i.length) + i;
}
return function(Constr) {
var new_constr = function() {
this.___uid = generateId();
Constr.apply(this, arguments);
};
new_constr.prototype = Constr.prototype;
new_constr.prototype.toString = function() {
return this.___uid;
};
return new_constr;
};
}());
и затем сделайте:
A = addIdentityTracker(A);
var a = new A();