2013-01-19 8 views
5

Mögliche Duplizieren:
Removing event listener which was added with bindÄndert bind() die Funktionsreferenz? | Wie man dauerhaft setzt?

Ich muss dynamisch hinzufügen und Ereignis-Listener entfernen. Ich muss auch die this einstellen.

Ändert dies die Funktionsreferenz?

element.addEventListener('click', funcA); 
newFunc = funcA.bind(this); 
element.removeEventListner('click', newFunc); 

Wird removeEventListener wissen, dass ich funcA entfernen möchte?

Oder denkt es, dass ich eine neue Funktion alle zusammen entferne?

Antwort

4

Oder denkt es, ich entferne eine neue Funktion alle zusammen?

Ja, .bind() gibt ein neues Funktionsobjekt zurück.

+0

enter ist eine Methode in einem Objektliteral, und ich möchte immer 'this' auf das umgebende Objekt zeigen. –

+0

Ja, Sie könnten 'this.enter = (function() {...}). Bind (this)' ausführen, so dass 'this.enter' nur auf die gebundene Funktion verweist – Bergi