цепочка наследование
возникла такая проблема есть несколько больших обьектов и нужно сделать между ними цепочку наследования - задача не сложная если бы они не подгружались в формате JSON , к примеру
var f = { f:"1" }; var f1 = { f1:"2", inherit:f // если есть это свойство то унаследовать обьект в нем }; из за того что нужно прочитать свойство inherit через конструктор не сделаешь function f() { this.f = "1"; }; единственная идея что пришла в голову , так как обьект передается в массиве можно сделать так [function f1(){ this.f = "1"; },2];// значение совйтсва inherit , храниться в том же массиве что и функция но так как это не удобно, можете что то по советовать? |
Что-то мне кажется ты намудрил, зачем тебе свойство inherit?
Объясни подробнее, чего ты хочешь сделать этим. |
да все просто ,есть обьекты и другим обьктам нужно унаследовать сойства и методы.
|
Ну так в чём проблема?:)
for(.. in ...) |
тупо скопирова методы не самый лучший вариан.
|
тупонул совместил 2 комента,один писал на хабре другой тут,писал с телефона и забыл где пишу))
Суть в том зачем копировать если можно наследовать. |
эммм, раздвоение личности?
Цитата:
var obj = {...} Объекты у тебя наследуют только встроенные свойства и методы объекта Object, прости за тавтологию. Есть вариант создания объектов, через свой конструктор, так что-то да получиться. Или же тупо сращивать через цикл, что не является плохим тоном, в таких случаях. |
Цитата:
"тупонул совместил 2 комента,один писал на хабре другой тут,писал с телефона и забыл где пишу))". А по теме : Не вижу смысла в копирование свойство и методов, я знаю что нельзя менять __прото__ обьектов во всех браузерах, но копирования мне не кажеться самым лучшим вариантом.... |
Вот так правильно:
Цитата:
|
в полне реально, есть вариантик , прийду домой скину
|
можно так замутить
function inherit(obj, prop) { var res = obj[prop]; while(!res) { obj = obj.inherit; res = obj[prop]; }; return res; }; , копирование тоже вполне нормальный вариант для javascript (был бы доступ к __proto__ во всех браузерах..) |
Часовой пояс GMT +3, время: 02:14. |