Witam.
Nurtuje mnie pytanie odnośnie stałych zmiennych deklarowanych w funkcjach. Przeglądałem przykładowy tutorial GWT w którym był taki oto pseudo kod:
void jakasFunkcja(){
final String text = textBox.getText();
contener.addText(text);
Button btn = new Button("nowy");
btn.addClickHandler(new ClickHandler())
{
public void onClick(ClickEvent event) {
if(conterer.containst(text)
{
//rob cos tam
}
}
panel.addWidget(btn);
}
Zastanawiam się teraz jak działa mechanizm kliknięcia Buttonów. Rozumiem, że przy kliknięciu w btn, handler "widzi" te zmienne które zostały zadeklarowane w tym samym bloku i w dodatku jako stałe ? Chciałbym zrozumieć tak na chłopski rozum jak dochodzi do tego, że te zmienne są "powiązane" z clickHandlerem pomimo opuszczenia funkcji "jakasFunkcja". Czy jest robiony tak jakby "snapshot" pamięci całego bloku kodu, w tym wypadku funkcji ?