작성
·
416
1
안녕하세요! 강의를 듣다가 이해가 되지 않아서 처음부터 돌려 보고 있는데 대문자/소문자 오브젝트가 계속 잘 이해가 되지 않아 질문드립니다.
저는 대문자 오브젝트는 데이터 저장을 위한 프로퍼티 집합이고,
소문자 오브젝트는 데이터 처리를 위한 프로퍼티 집합이라고 이해했습니다.
대문자/소문자 오브젝트 모두 구조는 key: value (프로퍼티)로 이루어져 있지만,
데이터 저장을 위한 것 VS 데이터 처리를 위한 것을 구분하기 위해
선생님께서 대문자 VS 소문자 오브젝트를 구분하셨다고 이해했습니다. (제가 이해한 게 맞나요?...)
그런데 Number object 파트에서 아래처럼 new 연산자를 설명하실 때,
생성된 인스턴스 type을 찍어보면 object로 나오는데, 이 type이 소문자 오브젝트라고 하신 게 이해가 안 됩니다.
소문자 오브젝트를 복사한 개념이니까 소문자 오브젝트라고 하신 걸까요?
이것도 type은 똑같이 object가 나오는데, 이건 데이터 저장 목적이 있는 대문자 오브젝트이니까, 대문자 오브젝트 type이다 라고 하면 맞는 설명인가요?
감사합니다.
답변 1
0
좋은 질문입니다.
Q) 저는 대문자 오브젝트는 데이터 저장을 위한 프로퍼티 집합이고, 소문자 오브젝트는 데이터 처리를 위한 프로퍼티 집합이라고 이해했습니다.
=> 대문자 Object에 함수를 작성할 수 있으며, 함수는 데이터 처리에 더 가깝습니다.
Q) 데이터 저장을 위한 것 VS 데이터 처리를 위한 것을 구분하기 위해 대문자 VS 소문자 오브젝트를 구분하셨다고 이해했습니다. (제가 이해한 게 맞나요?...)
=> 대문자 Object 안에 함수를 작성할 수 있으므로 처리를 포함할 수 있습니다.
Q) 소문자 오브젝트를 복사한 개념이니까 소문자 오브젝트라고 하신 걸까요?
=> new 연산자로 생성한 인스턴스의 타입을 소문자 object로 표기한 것입니다.
Q) 대문자 오브젝트 type이다 라고 하면 맞는 설명인가요?
=> typeof 연산자의 오류(typeof null도 object)이기도 합니다만, 포괄적으로 object로 표현합니다.
--------
강좌에서 대문자 Object는 Object 이름이 Object인 것을 뜻하며, 소문자 object는 new 연산자로 생성한 인스턴스를 뜻합니다. 비기너 과정에서는 구분을 위한 것도 있지만, 몇 단계 깊게 들어가면 차이가 있습니다.
지금 정리가 되지 않아도 괜찮습니다.
이 점을 염두에 두고 진도를 나가면 점진적으로 뉘앙스를 이해하게 될 것으로 생각합니다.
감사합니다 그런데 date type 에서 object를 설명하실 때는 대문자라고 말씀하시고, built-in object를 설명하실 때는 소문자라고 말씀해 주셨는데 답변해 주신 내용으로는 이것이 아직 잘 이해가 안됩니다 ㅠㅠ
일단은 진도를 더 나가봐도 괜찮을까요