Показать сообщение отдельно
  #2 (permalink)  
Старый 29.12.2014, 03:42
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

Можешь попробовать вот такую парашу:
extend=function(src, trg){for(var i in src) trg[i]=src[i]}
function Db(ob){
   extend(ob, this)
   return this
}
Db.prototype.foo=1
Db.prototype.bar=1
Db.prototype.baz=1


dbs={
  list: [
     {foo: 10},
     {foo: 100, bar: 10} 
  ]
}

for(var i in dbs.list) dbs.list[i]=new Db(dbs.list[i])

console.log(
   dbs.list[0].foo,
   dbs.list[0].bar,
   dbs.list[0].baz,
   dbs.list[1].foo,
   dbs.list[1].bar,
   dbs.list[1].baz,
   dbs.list[0].constructor,
   dbs.list[1].constructor,
   dbs.list[0].hasOwnProperty("foo"),
   dbs.list[0].hasOwnProperty("bar"),
   dbs.list[0].hasOwnProperty("baz"),
   dbs.list[1].hasOwnProperty("foo"),
   dbs.list[1].hasOwnProperty("bar"),
   dbs.list[1].hasOwnProperty("baz")
)

//  10 1 1 100 10 1 [Function: Db] [Function: Db] true false false true true false

Так у тебя восстановится вся иерархия. Но по-хорошему, следовало бы сраным комитетчикам яйца оторвать. __proto__ , в общем случае, без бубнов, ничем не заменишь, это сердце языка, блять. Вроде, какой то setPrototypeOf обещают, посмотрим.
Ответить с цитированием