• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

안녕하세요! 강사님 - 질문이 생겼습니다.

20.12.16 01:40 작성 조회수 96

0

마지막에 말씀하신
오브젝트 > 오브젝트 > 메서드 구조 설명를 듣고
제가 자바 언어와 유사하다 생각된 부분을 나름 정리를 해봤습니다.
혹시 바람직하지 않은 부분이 보이신다면
조언을 구합니다.

"아래는 노트필기의 전문 입니다."

오브젝트 가 포함한 오브젝트 - Outer,Inner 클래스 화

자바에서는 class 내부 inner class 가 존재한다.
JS 코드의 book.point 오브젝트는 inner class 개념과 일치하는 구조이다.

오브젝트가 오브젝트를 내포하여
inner class 형태로 구현이 가능한
JS 만의 계층적 표현식이다.
자바의 익명클래스 를 계층적으로 구현시키는 형태와
비슷하게 파악이 된다.

단, 프로토 타입, 생성자 프로퍼티가 없어서
class 처럼 사용하려면,
__proto__ 와 constructor  프로퍼티를 생성하여
계층구조를 연결 시켜야 하는 불편함이 있다.

답변 3

·

답변을 작성해보세요.

1

오해 없으시기 바랍니다.^^

1

Truestar님의 프로필

Truestar

질문자

2020.12.16

빠르신 답변 감사드립니다.
제가 어디서도 자바 와 JS 비교에 대해 물어볼 곳이 없다보니 방향을 잘못 잡을뻔했네요..
ES6 로 JS 라이브러리 작성 를 목표로 접근하려다 보니
자바 스러운 클래스 작성이 힘들어 시행착오가 너무 많았습니다. 그래서 ES3~5 전부 듣게되었네요..

말씀과달리 대입을 한건 아니었어요.. 제가 단어 선별력이 부족해서 그런것 같습니다 ㅠㅠ
자바 와 비슷한 개념을 정리하려면
기준의 잣대를 ES6 로 잡아야 한다는 말씀으로 이해했습니다.
완강 했구요, 이어서 ES6 강의 달리러갑니당^^

1

프로그램 언어마다 특징이 있고 목적과 용도가 다르므로 비교는 할 수 있으나 대입은 할 수 없다고 봅니다. 언어 비교는 본 강좌에 맞지 않는 질문&답변이지만, 오래된 Java 경험을 기반으로 큰 범주에서 답변을 작성합니다. 

JS 코드의 book.point 오브젝트는 inner class 개념과 일치하는 구조이다.
==> JS의 오브젝트 형태와 Java의 class 형태는 다르다. JS 오브젝트{}는 싱글톤 오브젝트이다. JS의 오브젝트는 오브젝트에 데이터를 작성할 수도 있다.

단, 프로토 타입, 생성자 프로퍼티가 없어서 class 처럼 사용하려면, __proto__ 와 constructor  프로퍼티를 생성하여
계층구조를 연결 시켜야 하는 불편함이 있다.
==> ES6에 class가 있으며, 이것은 Java의 class와 같은 형태, 개념으로 인스턴스를 생성해야 한다. ES6의 class에는 super도 있으며
constructor를 개발자가 오버라이드할 수 있다. 다만, class를 구현하는 구조가 Java와 다르다.