Size: a a a

JavaScript Noobs — сообщество новичков

2021 January 30

К

Кирилл in JavaScript Noobs — сообщество новичков
function makeCounter() {
 let count = 0;

 return function() {
   return count++; // есть доступ к внешней переменной "count"
 };
}


Добрый день, почему если я вызываю функцию makeCounter(), то возвращается тело внутренней функции, а если я присваиваю вызов makeCounter() какой-либо переменной, то все работает?
источник

ЖС

Женя Саенко... in JavaScript Noobs — сообщество новичков
Потому что ты вызываешь функцию которая возвращает другую функцию? Чего ты ожидаешь при вызове без присваивания?
источник

N

Nikita in JavaScript Noobs — сообщество новичков
Кирилл
function makeCounter() {
 let count = 0;

 return function() {
   return count++; // есть доступ к внешней переменной "count"
 };
}


Добрый день, почему если я вызываю функцию makeCounter(), то возвращается тело внутренней функции, а если я присваиваю вызов makeCounter() какой-либо переменной, то все работает?
Когда ты присвоил вызов makeCounter переменной, в переменной будет то что вернула функция, а у тебя это новая функция это называется - замыкание. Еще ты бы мог вызвать makeCounter 2 раза сразу вот так makeCounter()()
https://learn.javascript.ru/closure
источник

К

Кирилл in JavaScript Noobs — сообщество новичков
Nikita
Когда ты присвоил вызов makeCounter переменной, в переменной будет то что вернула функция, а у тебя это новая функция это называется - замыкание. Еще ты бы мог вызвать makeCounter 2 раза сразу вот так makeCounter()()
https://learn.javascript.ru/closure
Да, я разобрался и если я буду вызывать makeCounter()() таким образом результат будет 0, потому он никуда не сохраняется, верно?
источник

DM

Denys Mikhalenko in JavaScript Noobs — сообщество новичков
Сохраняется в scope
источник

DM

Denys Mikhalenko in JavaScript Noobs — сообщество новичков
Пока на эту функцию есть хоть одна ссылка
источник

К

Кирилл in JavaScript Noobs — сообщество новичков
Всем спасибо за ответ
источник

И

Иван in JavaScript Noobs — сообщество новичков
Кирилл
Да, я разобрался и если я буду вызывать makeCounter()() таким образом результат будет 0, потому он никуда не сохраняется, верно?
Сохраняется в scope
Пока на эту функцию есть хоть одна ссылка (с)

В твоём коде с ()() на эту функцию нет ни одной ссылки и она выбрасывается к херам
источник

И

Иван in JavaScript Noobs — сообщество новичков
Кирилл
Да, я разобрался и если я буду вызывать makeCounter()() таким образом результат будет 0, потому он никуда не сохраняется, верно?
А результат 0 возвращается
источник

И

Иван in JavaScript Noobs — сообщество новичков
Кирилл
Да, я разобрался и если я буду вызывать makeCounter()() таким образом результат будет 0, потому он никуда не сохраняется, верно?
Можешь его в переменную сохранить
источник

N

Nuri in JavaScript Noobs — сообщество новичков
Помогите пожалуйста. Когда пишу так <pre>{JSON.stringify(item)}</pre> то выходит то что на скриншоте. Я никак не могу достать поля объектов. Пишу так <pre>{JSON.stringify(item.name)}</pre>, а там выходит ошибка doesn’t exist on type never. Я попробовал промапить item, но тоже не вышло. Как достать проперти объекта?
источник

D

D M in JavaScript Noobs — сообщество новичков
Nuri
Помогите пожалуйста. Когда пишу так <pre>{JSON.stringify(item)}</pre> то выходит то что на скриншоте. Я никак не могу достать поля объектов. Пишу так <pre>{JSON.stringify(item.name)}</pre>, а там выходит ошибка doesn’t exist on type never. Я попробовал промапить item, но тоже не вышло. Как достать проперти объекта?
JSON.stringify возвращает тебе JSON в виде строки. Тебе видимо надо сделать что то такое  <pre>{item.name}</pre>
Плюс это походу типизировать надо чтобы ТС не ругался
источник

N

Nuri in JavaScript Noobs — сообщество новичков
D M
JSON.stringify возвращает тебе JSON в виде строки. Тебе видимо надо сделать что то такое  <pre>{item.name}</pre>
Плюс это походу типизировать надо чтобы ТС не ругался
Когда делаю просто {item.name}, то выходит ошибка Objects are not valid as a React child. If you meant to render a collection of children, use an array instead.

После того как увидел эту ошибку внутри {} я пытался мапить item. {item.map}, но снова выходит ошибка doesn’t exist on type never
источник

D

D M in JavaScript Noobs — сообщество новичков
Тут надо уже более полный код смотреть.
источник

q

quild in JavaScript Noobs — сообщество новичков
Приветствую. Посоветуйте утилиту для удобного просмотра json файла
источник

И

Иван in JavaScript Noobs — сообщество новичков
quild
Приветствую. Посоветуйте утилиту для удобного просмотра json файла
Webstorm
источник

A

AFGM in JavaScript Noobs — сообщество новичков
можете подсказать как сделать выпадающий список?
источник

q

quild in JavaScript Noobs — сообщество новичков
Иван
Webstorm
Спасибо
источник

И

Иван in JavaScript Noobs — сообщество новичков
quild
Спасибо
Да это кек такой

Если для браузера — расширение jsonview классное. Если просто файл — любой текстовый редактор, vscode хоть
источник

A

AFGM in JavaScript Noobs — сообщество новичков
Иван
Да это кек такой

Если для браузера — расширение jsonview классное. Если просто файл — любой текстовый редактор, vscode хоть
+
источник