Как эмулировать то, что делают декораторы AngularJs в vanilla Javascript (ES6)?

AngularJs Decorators Обеспечивает эффективный способ расширения функций в сервисах, не влияя на исходный сервис. Как можно эмулировать это поведение с классами JavaScript?

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

0
источник поделиться
1 ответ

Скорее глупый пример:

class A {foo() {console.log(1)}}
var a  = new A();
// super decorate
var t  = a.foo; a.foo = () => { console.log(2); t()}
// awesome result:
a.foo()
>> 2
>> 1
0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос