Показать сообщение отдельно
  #7 (permalink)  
Старый 12.07.2008, 18:56
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

я прекрасно понимаю, что если передать в метод объекта bind абстрактную функцию, то потом ее нельзя будет детачить, но нам это и не надо, для абстрактных функций выполним автоматическое взятие контекста:
obj.attachEvent('on' + type, function() {listener.apply(obj);});

А вот, чтобы иметь возможность детачить функции и передаем в метод bind имя функции (или ссылку на абстрактную в случае с statement). Но в этом случае надо первоначально получить контекст в котором она будет выполняться:
var handler = a.bind(obj);

т.к. функции привязки событий только часть базовой основы будущего проекта и пользоваться ими придется не только мне, то я более чем на 100% уверен что программисты будут забывать выполнять var handler = a.bind(obj); перед привязкой функции к событиям объекта, что в случае появления необходисмости использования this приведет к длительному поиску ошибки, где же всетаки забыли выполнить обертку, притом это только для IE... поэтому и заговоил об автоматизации этого действия var handler = a.bind(obj);

А вот с определением того, в каком виде передана функция, получается что регулярным выражением мы найдем и абстрактную функцию и statement одинаково :-(
Ответить с цитированием