JavaScript melhor maneira de modificar o protótipo de função

Desejo criar um construtor de construtores. Em relação a este tópico:JavaScript constrói um construtor de construtores, parece que as únicas soluções são:

Function.prototype.add = function(name, value) {
    this.prototype[name] = value;
};
Function.prototype.remove = function(name) {
    delete this.prototype[name];
};

Mas não quero modificar o genéricoFunction protótipo ... e também:

var A = new ConstBuilder().add('test', function() {
    console.log('test');
}).getConstructor();

Mas não quero ter um objeto wrapper em torno do próprio construtor.

O problema é que geralmente os construtores criam novos objetos, herdando métodos do protótipo do construtor. O que estou tentando fazer é instanciar funções em vez de objetos, mas a única maneira de modificar uma propriedade de protótipo de função é modificar sua__proto__ propriedade:

var constructorPrototype = {
    add : function(name, value) {
        this.prototype[name] = value ;
    }
} ;

var ConstBuilder = function() {
    var constructor = function() {} ;
    constructor.prototype = {} ;
    // The only way (?), but quite deprecated...
    constructor.__proto__ = constructorPrototype ;
    return constructor ;
} ;

// Not working way...
//ConstBuilder.prototype = constructorPrototype ;

var A = new ConstBuilder() ;
A.add('test', function() {
    console.log('test') ;
}) ;

var a = new A() ;
a.test() ; // "test"

constructorPrototype.remove : function() {
    delete this.prototype[name] ;
} ;

A.remove('test') ;

a.test() ; // Error: test is not a function.

Nota esteA.prototype não éA.__proto__ mas A.prototype é(new A).__proto__.

E funciona perfeitamente modificando__proto__, que pena. Eu li que o Firefox integrou um "Object.setPrototypeOf ()", mas é apenas experimental.

Seria outra maneira de fazer o que desejo fazer?

questionAnswers(1)

yourAnswerToTheQuestion