10 Баллов, помогите
function makeCounter() {
Function counter() {
return counter.currentCount++;
} ;
counter currentCount = 1;
return counter;
};

var counter = makeCounter( );
alert(counter( ) ); // 1
alert(counter( ));// Что делает этот код JavaScript​


serd2011: Вы, видимо, хотели написать так: var counter = makeCounter();
В таком случае переменная counter будет содержать ссылку на функцию counter. B counter( ); вернет значение переменной (при первом вызове: 1, при втором: 2 )
123Dinamo: Да , ещё одна ошибка
serd2011: function makeCounter() {
function counter() {
return counter.currentCount++;
};
counter.currentCount = 1;
return counter;
};
var counter = makeCounter();
alert(counter()); // 1
alert(counter()); // 2
123Dinamo: Но как получилось 2 , ведь при каждом выполнении функции переменная перезаписывается и главное почему в первый раз выходит единица
serd2011: В Вашем коде все еще есть ошибки:
1) Function - с большой буквы
2) Отсутствие точки между counter и currentCount в строке counter.currentCount

В предыдущем сообщении я написал рабочий код
123Dinamo: Ах да , я про точку забыл , ну Всё спасибо. понял
serd2011: counter( ) - выполняет функцию counter, а не makeCounter, поэтому выполняется return counter.currentCount++;
В первый раз выводится 1 т.к. вы устанавливаете свойство counter в 1 в функции makeCounter: counter.currentCount = 1;
123Dinamo: Кстати, а почему ответить не нажали?
serd2011: У вас в коде было очень много ошибок. Я решил уточнить, а дальше чет пошло тут
123Dinamo: понятно

Ответы

Ответ дал: alex6712
1

Ответ:

Создаёт объект счёта.

Объяснение:

В строке 9 создаётся объект counter, которому внутри функции makeCounter() устанавливается поле currentCount. Далее вызывается функция counter(), которая сначала возвращает значение поля currentCount объекта counter, а затем увеличивает значение этого поля на 1.

Вас заинтересует