вот код, позволяющий создавать экземпляры экземпляров:
const Cstr = function () {
const Self = function () {};
Object.setPrototypeOf(Self, this);
return Self;
};
const item = new Cstr;
console.log('item instanceof Cstr : ', item instanceof Cstr);
const itemInstance = new item;
console.log('itemInstance instanceof item : ', itemInstance instanceof item);
вот Gist где кода больше и лучше, там экземпляры вглубину тоже наследуются, но там намного соложней и очень долго, зато 200 строк console.log
'ов :
https://gist.github.com/wentout/8a2631fd5cc5827df5946b9b6598bf99
вот статья про этот код, но там душно, и форточки закрыты:
https://habr.com/ru/articles/939050/
; ^ )