Javascript: После того, как «класс / объект» был «расширен», возможно ли расширить его, используя другой базовый «класс / объект»? - PullRequest
1 голос
/ 21 июля 2011

Я пытаюсь добавить новое свойство в дерево классов в существующей среде JS (Wireit). См. Здесь для получения более подробной информации: Javascript: возможно ли добавить новые функции в базовый «класс / объект», который будет доступен во всех подклассах / объектах?

Мой первоначальный подход состоял в том, чтобы переопределить базовый класс, но это оказалось непросто.

Теперь мне интересно, могу ли я создать подкласс базового класса, добавить свое расширение, а затем переклассифицировать класс, который расширил базовый класс, чтобы использовать мой базовый класс. Сложно? Я сделаю простую диаграмму, чтобы показать, что я имею в виду ....

Текущее наследство

Container --> ImageContainer
Container --> FormContainer

Новое наследство

Container --> MyContainer --> ImageContainer
Container --> MyContainer --> FormContainer

Возможно ли это?

1 Ответ

0 голосов
/ 21 июля 2011

Просто добавьте guid как метод и покончите с этим.

Container.prototype.GUID = function() {
  return GUIDSystem.getGUID(this);
}

Напишите свою собственную систему GUIDS, которая будет возвращать уникальный GUID для каждого объекта.

Подсказка: Используйте WeakMap , шим WeakMap и ленивый набор GUID на карте.

...