No estoy seguro exactamente cómo formular mi pregunta, así que me presento un ejemplo:¿Cómo puedo agregar una función prototipo a un detector de eventos en la función de inicialización?
function foo() {
window.addEventListener("keydown", function(event) {
bar(event.keycode);
}
foo.prototype.bar = function (keycode) {
//code
}
He intentado usar this.bar()
, pero que se traduce en el uso de la window
como this
. ¿Hay alguna manera de hacerlo, o tendré que llamar a otro método de inicialización manualmente?
Por qué unirse? 'window.addEventListener (" keydown ", this.bar, false);'? –
@SheikhHeera, de modo que 'bar' se llama en el contexto de' this'; de lo contrario, se ejecutará en el ámbito global y no habrá una ventaja de haber enlazado una función de prototipo. – zzzzBov
@SheikhHeera '.bind' corrige que el valor' this' es siempre el mismo sin importar cómo se llame a la función enlazada. En este caso, siempre será el objeto 'foo'. – Esailija