Анонимен събитие Handler
Global функция
Искам да премахне често събитието манипулатор веднага след събитието се е случило. Тя е много по-лесно, когато събитието манипулатор не е анонимен, но вместо да я определят като една глобална функция:
В този пример, за да се отстранят приемател на събития, е достатъчно проста, но този метод за създаване на слушател има недостатъци. За да кликвания манипулатор има достъп до променлива съобщението, ние трябва да се декларира променлива в глобалния обхват. И това, от техническа гледна точка, не е толкова голяма.
Да се върнем към първия ни пример JS, което не е проблем. В този пример, слушателя на събитието е анонимно функция. За да се премахне водачът на такива събития в рамките на манипулатор, ние трябва да получи препратка към тази функция. За да направите това, ние ще използваме променливи аргументи. което е възможно в някоя функция автоматично. Това включва не само аргументите подават на функцията, но и препратка към самата функция: arguments.callee. Можем също така да използвате тази връзка, за да се отстранят анонимен манипулатор събитие, след като той е бил призован.
Изтриването на анонимен слушател събитие
Тук, първият примерен код с един допълнителен ред за отстраняване на анонимен слушател събитие.
Кодът използва e.type като вида на събитието и как събитието e.eventPhase фаза.
Частично arguments.callee доста полезен в такива случаи.
Тези слабо документирани свойства на функции са лесни за използване. Включете ги в своя арсенал.
Прочетете също статията по темата: