В следующем блоке кода JavaScript я НЕ хочу объявлять новую функцию f
в for
-области, а просто назначить () => i
ранее объявленному let f
, создавая тем самым закрытие для for
объявленная и определенная переменная в области i
.
К сожалению, код приводит к Type Error: f is not a function
, потому что f = () => i
интерпретируется как let f = () => i
:
{
let f;
for (let i = 'a', f = () => i; i == 'a'; ) {
i = 'b';
}
f();
}
В for
-петле, как я могу отделить f = () => i
от прецедента let i = 'a'
?
Если поставить его в скобках, получится Syntax Error
:
{
let f;
for ((let i = 'a'), f = () => i; i == 'a'; ) {
i = 'b';
}
f();
}
Я не хочу менять рамки. Я просто ищу синтаксическое средство, чтобы выразить точное созвездие, как указано в моем вопросе.