기본적으로는 다이얼로그 기능을 위해 만든 객체들이 여기저기서 호출되어야 하다보니
다이얼로그가 전부 전역변수에 들어가게 되거든요.
dialog_name.open()같은 구조를 구현하기 위해서 전역변수를 좀 이리저리 많이 써둔 편인데
아까 다이얼로그 질문하신 분 아래 댓글들을 보니 JS전역변수는 아주 혐오하는 수준으로 적게 써야 한다는 느낌을 받아서 그렇지만
이게 실질적으로 줄일만한 깨달음이 딱 하고 오지 않다보니 뭔가 복잡해지네요.
만약이지만 get_dialog_obj("dialog_name").open() 같은 식으로 구성한다고 해도
get_dialog_obj 함수 내부에서는 dialog_name에 대한 정보를 가지고 있어야 하지만, 변수 생명주기를 생각하면 어떻게 해도 끊임없이 늘어날 다이얼로그의 정보는 반드시 전역변수로 선언되어있어야 하거든요.
그리고 좀더 확장해서 생각하면 지속적으로 읽어들여야 하는 옵션 값 또한 전역변수에 있어야 하는데
전역변수에 있지 않다면 매번 AJAX로 서버에 옵션값을 요청해서 받아와야 할 테구요.
hidden 태그를 만들어 거기에 값을 집어넣는다면 전역변수랑 비슷한 접근성을 가졌지만 태그의 DOM때문에 속도도 더 느려질 것 같은데 이것도 좋은 방법은 아닌것 같고
사실 다이얼로그 뿐만이 아니라 지속적으로 접근해야 하는 오브젝트가 꽤 많습니다... 그만큼 전역변수 양이 터무니없을 정도로 많구요.
전역변수가 있으면 메모리 점유나 접근성, 데이터의 오염 같은 여러가지 문제가 있다는건 알지만
줄일 방법이 없어서 꾸역꾸역 쓰고있는거나 마찬가지인데, 뭔가 방법 있을까요.