PHP: fnDelay = (function(){ var timer = 0; return function(callback, ms){ clearTimeout(timer); timer = setTimeout(callback, ms); }; })(); Что значит (функция)(); ? Непонятно, почему передаваемые переменные видны в return function(callback, ms); ? Как это работает не понимаю. Помогите, пожалуйста. PHP: document.getElementById('search').addEventListener('keyup', function() { fnDelay(function() { search(); }, 200); });
(function(){})() - это вызов анонимной функции; fnDelay - получает результат работы вызова анонимной функции; Результатом работы анонимной функции является тоже функция принимающая два аргумента callback и ms В самой последней вложенной функции устанавляваеться таймер по истечению которого вызовется callback.