Показать сообщение отдельно
  #4 (permalink)  
Старый 14.07.2015, 15:57
Аспирант
Отправить личное сообщение для jackdempsey2015 Посмотреть профиль Найти все сообщения от jackdempsey2015
 
Регистрация: 23.06.2015
Сообщений: 53

Patr56,
Дело конечно ваше, но Ваше решение не особо гибкое. нет возможности свободно удалять и добавлять обработчики. Я бы на вашем месте сделал как-то так
<html>


<button onclick="window.onresize()">
 test
</button>
<button onclick="window.handlers.remove(alert1)">
 remove
</button>

<script>



Handlers=function(){this.handlers=[]}
Handlers.prototype={
 remove: function(handler){this.handlers=this.handlers.filter(function(h){return handler!==h})},
 add: function(handler){this.handlers.push(handler)},
 call: function(){this.handlers.forEach(function(handler){handler()})}
}
handlers=new Handlers
alert1=function(){alert(1)}
alert2=function(){alert(2)}

handlers.add(alert1)
handlers.add(alert2)

onresize=function(){handlers.call()}

</script>
</html>
Ответить с цитированием