169 похожих чатов

Привет. Есть класс Х с методами. Можно ли создать класс

Y (или другой инструмент) поверх этого чтоб вызывая Y.do1() вызывался X.do1() с оберткой в виде (before(); X.do1(); after()) ?

11 ответов

18 просмотров

ключевое слово super? В доках же с самого начала есть про это

Pt. Loki- Автор вопроса
AluV (დანიილ) Daniil
ключевое слово super? В доках же с самого начала е...

в super не нашел как вызывать родительские функции по переменной, т.е. не пречисляя все функции в дочке. через прокси есть такое const hmHandler = { get: async function(target:hmClient, name: keyof hmClient) { store.log(before - ${name.toString()},'orange'); const response = await target[name]; store.log(after - ${name.toString()},'orange'); return response; } } this.api = new Proxy(new hmClient(process.env.VUE_API_URL, store.axios), hmHandler); оно работает пока не используешь async/await. иначе return уже не promise по определению.... решение найдено на уровне axios самого (iterceptors). Но все еще интересно как завернуть один класс в другой с перехватом. Чтоб из класса Y можно было вызывать методы класса X и вокруг еще дебаг делать =)

Pt. Loki- Автор вопроса

все-таки может кто подскажет?

Pt. Loki
все-таки может кто подскажет?

да, можно сделать обычное переопределение метода, в котором в нужный момент нужно будет сделать super.method() это если с классами

Pt. Loki- Автор вопроса
Ihor Zinchenko
да, можно сделать обычное переопределение метода, ...

вот на примерах все ломается. мне надо так чтоб как в прокси - вызвать из класса Y любой метод класса Х при этом перед и после выполнения выполнить ещё действия. т. е. Y.do1() { before(); x.do1(); after();} чтоб do1 do2 не нужно было вручную вводить

Pt. Loki- Автор вопроса
🦜
используй декораторы

пример любой гугла с примерным контекстом. 3 часа гуглю и спрашиваю)

Pt. Loki
пример любой гугла с примерным контекстом. 3 часа ...

//readonly decorator function function readOnly(target, name, descriptor) { descriptor.writable = false; return descriptor; } class Book { //Implementation here @readOnly getBook() { return `[${this.name}][${this.ISBN}]`; } } let obj = new Book("HP", "1245-533552"); obj.getBook = "Hello"; console.log(obj.getBook()); //[HP][1245-533552]

🦜
https://youtu.be/En7pWi2fSzs

https://youtu.be/2h9syXN5wO0

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта