Wpis z mikrobloga

@Ginden: jak dałem do konsoli argumenty to go nie widzi, tylko "łan" znajduje w tym przykładzie.

edit: dobra widzę, że próbuję go wywołać w nie tej funkcji :P
@arcn: (#) Jak bardzo obszernie potrzebujesz? Bo wiesz, mogę Ci dać linka w którym koleś tłumaczy to na poziomie implementacji, wyjaśniając czym są tak zwane activation objects (które są już przestarzałe co prawda, ale pomagają zrozumieć ideę) oraz wewnętrzna właściwość [[Scope]] funkcji i jak dzięki temu osiąga się efekt domknięć ( ͡° ͜ʖ ͡°)

Tl;dr jest taki, ze ogólnie to zmienne są trzymane w pewnym obszarze pamięci
@Marmite: trochę mnie zastanawiało gdzie lądują argumenty nadane której funkcji, ale już doświadczalnie do tego doszedłem konsollogując sobie

arguments
w każdym zakresie ( ͡° ͜ʖ ͡°)

@arcn: (#) Tl;dr miało być do artykułu podsumowującego domknięcia :> a argumenty lądują w dwóch miejscach: w obiekcie arguments, który staje się zmienną lokalną danej funkcji, oraz również w zmiennych lokalnych tej funkcji pod nazwami zapisanymi w deklaracji funkcji. Easy shit tak naprawdę. Kluczem do zrozumienia całości jest pozbycie się myślenia z innych języków - tutaj nie ma tak jak w C++, że argumenty funkcji lądują na ogólnym stosie który jest
@arcn: (#) No dałem w cudzysłowy bo z tego co się orientuję to kiedyś zmienne były trzymane w activation objects i z tego co wiem to był zwykłe, JavaScriptowe obiekty. Dzisiaj zmienne są trzymane w tzw. declarative environment records o których można powiedzieć że w pewnym sensie, abstrakcyjnie są obiektami, jednak specyfikacja nie mówi już wprost, ze mają to być czyste, JavaScriptowe obiekty. Już od silnika zależy gdzie to będzie trzymać.
@arcn: (#) Ja mógłbym bardzo wiele o JS napisać, problem w tym że to już zostało napisane (w końcu skądś się tego nauczyłem ( ͡° ͜ʖ ͡°)). Jak będziesz mieć jakieś pytania, problemy, cokolwiek - wal.