웹린이 겸 프붕이 질문올린다..
모든 함수는 함수가 생성된 곳의 렉시컬 환경을 기억한다고 공부 했는데..
가령
이 코드에서 setTimeout()의 인자로 들어가있는 저 익명함수는 setTimeout이 호출되었을 때
실행컨텍스트에 argunments 객체가 생성될때의 렉시컬 환경을 기억하는거임?
저거처럼 인자로 들어간 익명함수 생성된 시점이 언제임?
렉시컬환경이랑 활성객체랑 너무 헷갈림
의미없는 질문이면 욕한번박아주면 자삭함..
웹린이 겸 프붕이 질문올린다..
모든 함수는 함수가 생성된 곳의 렉시컬 환경을 기억한다고 공부 했는데..
가령
이 코드에서 setTimeout()의 인자로 들어가있는 저 익명함수는 setTimeout이 호출되었을 때
실행컨텍스트에 argunments 객체가 생성될때의 렉시컬 환경을 기억하는거임?
저거처럼 인자로 들어간 익명함수 생성된 시점이 언제임?
렉시컬환경이랑 활성객체랑 너무 헷갈림
의미없는 질문이면 욕한번박아주면 자삭함..
이거 프갤에도 물어보고 깃헙갤에도 물어봤는데 제대로 답변해줄 지식있는 얘 없더라
그냥 렉시컬 스코프때메 let으로 하면 해결되는거고 그냥 그래된다고 외우셈
ㅇㅋ
let i를 스코프 밖으로 빼내면 또 안된다고 딱국이가 말한 거 같던데
전역변수로let i로 빼내는 거 올렸었음 그때 또 안된다 그러는 거 같던데
문제가 여기에는 자스 vm 자체에 대한 지식이 있는 얘가 없어서 렉시컬 스코프도 실행 컨텍스트고 실제 내부적으로 어떻게 돌아가는지를 모르니까 그냥 실험해보고 그런갑다 하는 수밖에 없음
어나쥬어 말이 맞는 거 같음 실험하는 수밖에 방법이 없음...이걸 디버깅한다고 치면 최악의 난이도의 문제가 되버리는 쟈스.. 쟈스 놓아줘야 하나...
ㄳㄳ
이걸 유형화해서 이런 문제는 이런 거다 뭐 어떻게 유형이라도 뽑으면 그것만 좀 신경써서 디버깅 따로 떼내서 해볼 텐데 나한테 힌트 좀 줄 수 있어?
걍 쟈스 클로저는 지옥인 건가 ㅇㅅㅇ 이거 유형이라도 어떻게 해결해야할지 감 잡아줄 수 있어? 디버깅 어떤 것들 모아서 할지 감이 안 잡히네...ㅇㅅㅇ
쟈스가 그냥 지옥인 거냐 ㅜㅜ 나 자스 계속 하고 싶어 이런 거 유형을 뭐로 특정지으면 될지만 알려줘..ㅜㅜ
안 그러면 나 디버깅 못해 ㅜㅜ 모든 클로저마다 다 할 수도 있는 건 아니잖아ㅜㅜ
해당 댓글은 삭제되었습니다.
let i를 맨 위로 올리면 또 안된다고 하지 않았음?
그래서 그거 보고 멘붕했는데;;
아 그래? ㅋㅋ let은 진짜 "블럭"스코프네...
ㄳㄳ
이런 거 유형화 하면 뭐라고 설명할 수 있음?? 나중에 자스 디버깅할 때 이런 유형들 나오면 조심하고 따로 떼어내서 샘플 코드 만들어보고 진행하게...
고마워 많이 어렵네 for뿐만 아니라 익명함수랑도 연관이 있는 것 같아... for 대신에 어떤 함수가 들어왔을 때도 저런 방식으로 작동할 수도 있을 것 같아 내가 이 글은 캡처해놓고 연구해볼게 ㅇㅅㅇ
상구. 아재가 어제 정리해서 올려줬잖아. 못봐씀?
https://gall.dcinside.com/board/view/?id=programming&no=1422545&_rk=JRL&s_type=search_subject&s_keyword=es6&page=1
개추 ㅇㅅㅇ
못봤어서 지금보고있ㅇ브니다
http://m.dcinside.com/board/programming/1421931