Stasgar: Она его как раз из замыкания и берет. Считайте что вы создаете некий "блок", в котором есть переменная и функция. Функции бывают анонимными. Вот вы как раз и возвращаете анонимную функцию (без имени). Вы вполне могли бы сделать var func = function () { return ++count; }; return func; Получилось бы то же самое, просто функция была бы объявлена явно, с именем и так же была бы возвращена.
var a=b(); - как я уже писал выше - в переменной может находится значение (число, строка, массив) или функция, которую можно вызвать как "переменная();".
Просто функция может возвращать "ничего", может возвращать число, строку, массив, а может возвращать функцию (код). Только код можно вызвать как переменная().
Ну сами проследите за логикой.
1) Начинаем определять функцию shit, которая сначала выводит alert, затем определяет переменную counter, затем создает еще одну функцию "return counter += 1;" и ее же возвращает. Далее вы присваиваете переменной add результат функции shit, а ее результат - функция "return counter += 1;" со своей областью видимости переменных, куда входит counter. Далее вызовы add() вызывают код "return counter += 1;".
2) Начинаете определять shit, который выводит alert и ничего не возвращает. Присваиваете переменной add результат функции shit (а она ничего не возвращает), и далее пытаетесь вызвать add(), безуспешно, так как add == null.
Stasgar: Я, если честно, запутался уже в этом "топике" :)
Callback и есть callback - дословно "обратный вызов".
Вы запускаете какой-то процесс, который по окончанию выполнит вашу функцию.
По таймеру ничего не нужно проверять - длительный процесс сам ее должен вызвать.
Stasgar: В вашем примере нет никаких ajax запросов, по-этому тут тормозить нечему.
Вот когда сделаете ajax запрос, тогда и увидите там настоящую callback функцию, которая будет вызвана по его завершению.
thewizardplusplus: Лично я не сторонник Allow в robots.txt, но это чисто мое мнение (с тех времен, когда в robots.txt можно было использовать только Disallow). Так же в этом случае вам придется "корень" добавлять в Allow, а это уже откроет весь сайт.
thewizardplusplus: noindex,nofollow вас спасут от поискового бота, если хочется robots.txt - просто назовите админку /admin353786586749823/, а в robots.txt закройте /admin (закроется все что начинается с этой строки). А чтобы ссылка утекла много не надо - достаточно какого-нибудь Яндекс.Бара, которые сливает в Яндекс посещенные страницы.
SyavaSyava: На сколько я помню, в моем договоре было что-то типа "клиенту выделяется подсеть такая-то", а не "клиенту предоставляется 4 адреса". То есть все честно, просто не сразу понятно сколько адресов реально доступно для использования. А может даже было дополнительно указано что из них пользователю доступен один адрес - уже не помню - давно это было.
Intelide: В зависимости от того как устроено подключение у провайдера. На сколько я помню - там много разных технических реализаций. Вам провайдер фактически предоставляет Ethernet канал, а IP адреса либо модем по DHCP раздаст компьютерам, либо вы их сами на компьютерах пропишите.
Например провайдер вместо /30 даст вам 1.2.3.0/24. Вы настроите модем не на Static IP, а иначе (не помню точно какие там варианты бывают), к выходу модема подключите хаб, в хам подключите комрьютеры. На модеме настроите DHCP сервер на раздачу диапазона 1.2.3.2 - 1.2.3.254 (.0 - подсеть, .1 - шлюз, .255 - broadcast).
Если провайдер выдаст несколько /30 подсетей - возможно это будет несколько виртуальных соединений на разных VCI/VPI.
var a=b(); - как я уже писал выше - в переменной может находится значение (число, строка, массив) или функция, которую можно вызвать как "переменная();".