Size: a a a

Love Frontend Chat

2021 May 06

V🦖

Valentine 🦖 in Love Frontend Chat
У нас функция замкнула свой лексический контекст, поэтому если ты наспамишь в код что-то вроде

let c1 = createCounter()
let c2 = createCounter()

и так до бесконечности
источник

V🦖

Valentine 🦖 in Love Frontend Chat
и теперь можно спамить c1()
c1()
c1()
источник

V🦖

Valentine 🦖 in Love Frontend Chat
если ты логнешь четертый c1(), то получишь в аутпуте 4
источник

V🦖

Valentine 🦖 in Love Frontend Chat
а если логнешь с2(), то получишь ноль
источник

V🦖

Valentine 🦖 in Love Frontend Chat
потому что переменна будет жить в самом объекте функции
источник

V🦖

Valentine 🦖 in Love Frontend Chat
ну типа в жиес все объект, поэтому так можн оговорить
источник

СХ

Сергей Харченко... in Love Frontend Chat
т.е. замыкание, это то что конкретно этот let c теперь живет конкретно в этой функции?
источник

V🦖

Valentine 🦖 in Love Frontend Chat
Типа того
источник

V🦖

Valentine 🦖 in Love Frontend Chat
Как, допустим, поле класса
источник

A

Artur in Love Frontend Chat
источник

V🦖

Valentine 🦖 in Love Frontend Chat
хахахаха
источник

СХ

Сергей Харченко... in Love Frontend Chat
спасибо 🙏 )
источник

СХ

Сергей Харченко... in Love Frontend Chat
Эт в каком языке будет ошибка из-за того, что name удалится, до того, как вызовется displayName?

function makeFunc() {
 var name = "Mozilla";
 function displayName() {
   alert(name);
 }
 return displayName;
};

var myFunc = makeFunc();
myFunc();
источник

in Love Frontend Chat
В любом? 🤔
источник

СХ

Сергей Харченко... in Love Frontend Chat
@always_hopeless это же тупо? Если функция внутри другой, очевидно что она хочет работать с родительской.. или нет?
источник

V🦖

Valentine 🦖 in Love Frontend Chat
че
источник

V🦖

Valentine 🦖 in Love Frontend Chat
У тебя же ссылки не будет на name
источник

in Love Frontend Chat
Давай подумаем теперь, как так получилось, что name из функции у тебя удалился?
источник

in Love Frontend Chat
И как ты мог бы менять значение внутри функции асинхронно, если бы твоя функция кэшировала значение перменной?
источник

СХ

Сергей Харченко... in Love Frontend Chat
источник