Как расширить функцию с классами ES6?

ES6 позволяет расширять специальные объекты. Так что можно наследовать от функции. Такой объект можно вызвать как функцию, но как я могу реализовать логику для такого вызова?

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

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

Любой метод класса получает ссылку на экземпляр класса черезthis, Но когда он вызывается как функция,this относится кwindow, Как я могу получить ссылку на экземпляр класса, когда он вызывается как функция?

PS:Тот же вопрос на русском.

Ответы на вопрос(8)

Ваш ответ на вопрос