Класс Guest

Guest на GitHub

Предназначен для создания новых экземпляров GuestObjectType из функции-колбэка

Это поведение полезно в случаях, когда нужно динамически построить посетителя на основе функции, используя какие-то переменные из скоупа, где создана функция

Пример 1.

import { Guest } from 'patron-oop';

class Timestamp {
    seconds(guest) {
        guest.give(Date.now())
    }
}

const timestamp = new Timestamp();
timestamp.seconds(new Guest((timestamp) => {
    console.log('timestamp is', timestamp);
}));

Результат 1.

Result here

Возможность создавать объект-посетитель из функции была единственной в первых версиях библиотеки. На текущий момент вы можете также передать функцию-колбэк в качестве посетителя, тк функция соответствует типу GuestType Это позволяет не создавать лишних объектных-оберток

Пример 2.

import { Guest } from 'patron-oop';

class Timestamp {
    seconds(guest) {
        give(Date.now(), guest);
    }
}

const timestamp = new Timestamp();
timestamp.seconds((timestamp) => {
    console.log('timestamp is', timestamp);
});