Стоит задача добавить в прототип Object метод normalize но нельзя чтобы он наследовался другими объектами (Number String Array и любые другие которые от него наследуются)
normalize выводит нормальзованную версию объекта как это делают массивы ([4,6,'jjj'] => "4,6,jjj")
заменять toString не желательно
Вот код:
Object.prototype.normalize = function(hasOwn){
hasOwn = hasOwn || false;
var x = 0;
var tmp = '{\n';
if(hasOwn == false){
for(i in this){
if(this.hasOwnProperty(i)){
if(x == 0){
tmp += ' '+i+': '+(this[i].normalize()||this[i].toString()||this[i]);
}else{
tmp += ',\n '+i+': '+(this[i].normalize()||this[i].toString()||this[i]);
}
}
x++
}
}else{
for(i in this){
if(x == 0){
tmp += ' '+i+': '+(this[i].normalize()||this[i].toString()||this[i]);
}else{
tmp += ',\n '+i+': '+(this[i].normalize()||this[i].toString()||this[i]);
}
x++
}
}
tmp += '\n}';
return tmp;
}
я уже пытался сам исправить но стало только хуже