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

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

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

11 ответов

15 просмотров

ключевое слово 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

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

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

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...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
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
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта