Имеется следующий код:
function foo() {
var count = 0;
return function foo2() {
count++;
console.log(count);
}
}
var d = foo();
d();
d();
d();
Пример простого замыкания. Вопрос: почему, для того, чтобы работал код нужно создавать переменную и помещать туда вызов функции? Почему если вызвать функции напрямую foo(); (без переменной), то не работает?
Просто, не происходит вызов функции... Без переменной правильной будет такая конструкция
function foo() {
var count = 0;
return function foo2() {
count++;
console.log(count);
}
}
foo()() // 1
foo()() // 1
foo()() // 1
Проблема в том, что каждый вызов функции foo создает новую переменную count. Если count будет объявлена вне функции или частью её прототипа, то инкремент будет происходить корректно
function foo() {
foo.prototype.count=foo.prototype.count|0;
return function foo2() {
foo.prototype.count++;
console.log(foo.prototype.count);
}
}
foo()() // 1
foo()() // 2
foo()() // 3
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
появилась задачка по работе с Canvas, особо с ним никогда не работал, но сразу столкнулся с моментом который мне не особо нравится
Необходимо экранировать все символы ' (скобка) методом RegEx в строке ( \' ''' ' ' ), нужно учесть то что в строке возможно уже экранированный символ
Хотелось бы проверить работу скриптов сайта в in-app браузере instagram, может есть какая нибудь тестовая площадка?