Como fornecer "isso" ao escopo global?

Estou trabalhando com umdebounce função encontradaaqui neste post stackoverflow. É uma promessa que permite solicitações de limitação.

A função debounce não funcionará por algum motivo quando estiver aninhada em uma função porque osetTimeout as chamadas para a solicitação parecem ser enviadas de uma só vez. Ele precisa ser referenciado diretamente, eu acho.

Não posso fazer algo assim, porque ele precisa ser referenciado diretamente

function bounced(item){
  return debounce(mockRequest, 800, 5)(item)
}

É assim que deve ser usado

var bounced = debounce(mockRequest, 800, 5)

O problema é que estou criando um objeto de API como este e nenhuma opção funcionará

API.prototype.request = function(options){
  return this.debounce(this.makeRequest, 1000, 2)(options)
}

API.prototype.request = this.debounce(this.makeRequest, 1000, 2) // duh

Estou procurando uma maneira de usarthis e não chame o método de rejeição diretamente.

Idealmente, algo assim seria bom

API.prototype.request = function(){
  return this.debounce(this.makeRequest, 1000, 2)
}()

questionAnswers(1)

yourAnswerToTheQuestion