¿Por qué asignar `this` a` self` y ejecutar `self.method ()`?

Estoy leyendo la fuente demangosta

<code>Collection.prototype.onOpen = function () {
  var self = this;
  this.buffer = false;
  self.doQueue();
};
</code>

No entiendo porque el autor lo asignathis aself y correself.doQueue(). ¿Por qué no simplemente ejecutar:

<code>this.buffer = false;
this.doQueue();
</code>

Soy nuevo en JavaScript, gracias por la ayuda.

Respuestas a la pregunta(5)

Su respuesta a la pregunta