Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 23.07.2015, 19:17
Аспирант
Посмотреть профиль Найти все сообщения от tysonfury2015
 
Регистрация: 22.07.2015
Сообщений: 68

Сообщение от kobezzza
Чё тут реализовывать, берёшь Proxy или делаешь геттер над прототипом.
Покажи код
Ответить с цитированием
  #22 (permalink)  
Старый 23.07.2015, 19:20
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

var a = {a: 1};
var b = {b: 1};

var d = new Proxy({}, {
    get: function(target, name){
        return target[name] || a[name] || b[name];
    }
});

alert(d.a);
alert(d.b);
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 23.07.2015 в 19:26.
Ответить с цитированием
  #23 (permalink)  
Старый 23.07.2015, 19:27
Аспирант
Посмотреть профиль Найти все сообщения от tysonfury2015
 
Регистрация: 22.07.2015
Сообщений: 68

kobezzza,
Ты че, реально чтоли мягкий? Я тебе говорю, напиши интерфейс, чтобы у тебя были средства для определения таких объектов, добавления свойств и методов в объект. То есть, должно быть someObject.setPrortotype, get prototype, addPrototype, removePrototype. и прочее, чтобы на этом можно было программировать, чтобы от твоих объектов можно было наследоваться, и так далее. Кстати, то говно, которое ты написал не будет работать, там вообще нет никакого разруливания неймспейсов.

Короче, это семантически должны быть такие же объекты, как нативные, только с возможностью множественого наследования. Синтаксис не важен. Только поведение.

Последний раз редактировалось tysonfury2015, 23.07.2015 в 19:35.
Ответить с цитированием
  #24 (permalink)  
Старый 23.07.2015, 19:34
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Элитного кода тред
Этот тред запиливается для утоления жажды состязаний и выяснения того, кто кого круче в плане прогинга.
Ответить с цитированием
  #25 (permalink)  
Старый 23.07.2015, 19:37
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

function pluralParent(...parents) {
    let DerivativeParent = function() {
        for (let Parent of parents) {
            Object.assign(this, new Parent());
        }
    };
    
    DerivativeParent.prototype = new Proxy(DerivativeParent.prototype, { //Наследование свойств прототипа
        get: (target, name) => {
            if (target[name]) {
              return target[name];
            }
            
            for (let Parent of parents) {
                if (name in Parent.prototype) {
                    return Parent.prototype[name];
                }
            }
        }
    });
    
    DerivativeParent = new Proxy(DerivativeParent, { //Наследование статичных свойств класса
        get: (target, name) => {
            if (target[name]) {
              return target[name];
            }
            
            for (let Parent of parents) {
                if (name in Parent) {
                    return Parent[name];
                }
            }
        }
    });
    
    return DerivativeParent;
}

class Cat {
    constructor() {
        this.isACat = true;
    }
    
    meow() {
        console.log("meow");
    }
}

class Dog {
    constructor() {
        this.isADog = true;
    }
    
    bark() {
        console.log("woof");
    }
}

class CatDog extends pluralParent(Cat, Dog) {}

let catDog = new CatDog();

catDog.meow();
catDog.bark();
console.log(catDog);


Затестить можно в babel repl в последнем файрфоксе.

Последний раз редактировалось Erolast, 23.07.2015 в 19:59.
Ответить с цитированием
  #26 (permalink)  
Старый 23.07.2015, 19:39
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от Safort
Элитного кода тред
это пять
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #27 (permalink)  
Старый 23.07.2015, 19:39
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от nerv_
это пять
Он наверное так хотел написать
Цитата:
Элитного срача тред
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #28 (permalink)  
Старый 23.07.2015, 19:47
Аспирант
Посмотреть профиль Найти все сообщения от tysonfury2015
 
Регистрация: 22.07.2015
Сообщений: 68

Erolast,
Я подозревал, что щас вы тут начнете нести детский лепет. Ты не реализовал множественное наследование, ты даже не сымитировал его, ты просто добавил прокси, и все. Еще раз повторяю, для не особо сообразительных. В Js есть нативный объект от которого наследуют все объекты. К нему прилагаются средства, для работы с ним -- изменение слота, получение слота, и так далее. Должно быть то же самое, примерно, но с множественным наследованием.
Ответить с цитированием
  #29 (permalink)  
Старый 23.07.2015, 19:48
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Erolast, опередил
__________________
kobezzza
code monkey
Ответить с цитированием
  #30 (permalink)  
Старый 23.07.2015, 19:48
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Сообщение от cyber Посмотреть сообщение
Он наверное так хотел написать
Опечаточка вышла)

//как-то криво перенеслось(
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка HTML кода и JS кода через innerHTML zhurchik AJAX и COMET 1 31.10.2014 17:32
Как визуализировать структуру кода? dkudrin Общие вопросы Javascript 2 22.08.2014 19:12
скрыть из исходного кода часть javascript кода. javasc Javascript под браузер 10 12.03.2014 09:32
Удаление участка кода replace Dorian_bs Общие вопросы Javascript 3 23.11.2012 23:19
Пример кода сохранения в базу html страницы генерированного посредством JavaScripts wayzer Серверные языки и технологии 2 06.09.2012 16:46