Javascript дочерний класс, зарегистрированный с типом родительского конструктора - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть класс, расширяющий другой класс

import collect from 'collect.js'

export default class ObjectModelCollection extends collect {
    static fromSegments(segments) {
        return new this(segments)
    }
}

Если я регистрирую экземпляры моего класса, он отображается в консоли браузера как Collection - имя, используемое в collect.js.Как я могу сказать своему классу представлять себя под своим именем?Я попытался добавить свой собственный конструктор и вызвать super() безрезультатно.И this.constructor.name только для чтения.

Если это уместно, вот класс, который я расширяю:

'use strict';

function Collection(collection) {
  this.items = collection || [];
}

const SymbolIterator = require('./methods/symbol.iterator');

if (typeof Symbol !== 'undefined') {
  Collection.prototype[Symbol.iterator] = SymbolIterator;
}

Collection.prototype.all = require('./methods/all');
Collection.prototype.average = require('./methods/average');
Collection.prototype.avg = require('./methods/average');
...
Collection.prototype.whereNotBetween = require('./methods/whereNotBetween');
Collection.prototype.whereNotIn = require('./methods/whereNotIn');
Collection.prototype.wrap = require('./methods/wrap');
Collection.prototype.zip = require('./methods/zip');

const collect = collection => new Collection(collection);

module.exports = collect;
module.exports.default = collect;
...