ПредишенСледващото

Анонимен събитие Handler

Global функция

Искам да премахне често събитието манипулатор веднага след събитието се е случило. Тя е много по-лесно, когато събитието манипулатор не е анонимен, но вместо да я определят като една глобална функция:

В този пример, за да се отстранят приемател на събития, е достатъчно проста, но този метод за създаване на слушател има недостатъци. За да кликвания манипулатор има достъп до променлива съобщението, ние трябва да се декларира променлива в глобалния обхват. И това, от техническа гледна точка, не е толкова голяма.

Да се ​​върнем към първия ни пример JS, което не е проблем. В този пример, слушателя на събитието е анонимно функция. За да се премахне водачът на такива събития в рамките на манипулатор, ние трябва да получи препратка към тази функция. За да направите това, ние ще използваме променливи аргументи. което е възможно в някоя функция автоматично. Това включва не само аргументите подават на функцията, но и препратка към самата функция: arguments.callee. Можем също така да използвате тази връзка, за да се отстранят анонимен манипулатор събитие, след като той е бил призован.

Изтриването на анонимен слушател събитие

Тук, първият примерен код с един допълнителен ред за отстраняване на анонимен слушател събитие.

Кодът използва e.type като вида на събитието и как събитието e.eventPhase фаза.

Частично arguments.callee доста полезен в такива случаи.

Тези слабо документирани свойства на функции са лесни за използване. Включете ги в своя арсенал.

Прочетете също статията по темата:

Подкрепете проекта - споделете линка, благодаря!