Como estender Function com as classes ES6?

O ES6 permite estender objetos especiais. Portanto, é possível herdar da função. Esse objeto pode ser chamado como uma função, mas como posso implementar a lógica dessa chamada?

class Smth extends Function {
  constructor (x) {
    // What should be done here
    super();
  }
}

(new Smth(256))() // to get 256 at this call?

Qualquer método de classe obtém referência à instância de classe viathis. Mas quando é chamado como uma função,this refere-se awindow. Como posso obter a referência à instância da classe quando ela é chamada como uma função?

PS:A mesma pergunta em russo.

questionAnswers(8)

yourAnswerToTheQuestion