본문 바로가기
자바스크립트

자바스크립트 6. 클래스와 오브젝트의 차이점(class vs object), 객체지향 언어 클래스 정리

by 찬찬2 2020. 11. 17.

www.youtube.com/watch?v=_DLhUBWsRtw&list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2&index=6

 

class = { fileds / methods의 집합 }

(*데이터만 있는 class가 있기도 하다. data class)

 

★encaptulate(데이터: 클래스 안과 밖을 구별)

template | declare once | no data in

[getter & setter]

constructor에 있는 this.age를 데이터를 읽어오는 것이 아니라 아래 get age( )를 호출하게 된다.

그 후 " = " equal sign을 호출/할당할때 바로 메모리에 할당(equal)하는 것이 아니라 아래 set age( )를 호출한다.

이를 방지하기 위해 getter / setter 함수 안에 this.age(변수)를 constructor에 있는 변수와 다르게 입력해야 한다.

즉, getter / setter 함수 안에 값은 class안에 있는 값과 달라야 한다.

위에서의 field는 firstName / lastName / _age를 가르킨다.

 

※ 아래 콘솔로그에서 .age를 호출할 수 있는 이유, class안에 .age에 값을 할당할 수 있는 이유는 getter와 setter를 이용하기 때문이다!!!!

 

[private & public]

[static]

[상속 & 다양성]

키워드 : "custom(child) className" + "extends" + "parent className"

ex) class Rectangle extends Shape { }

 

"custom(child) className"에서는 기존 original clasName을 override할 수 있다.

"custom(child) className"에서는 부모의 함수(method)를 호출할 때 "super.함수명( );"으로 호출할 수 있다.

[instanceOf]

생성된 오브젝트(instance)가 어떤 class에서 만들어진지 확인할때.

값은 true 또는 false로 나타단다. 

※ 제일 아래에 triangle은 Object의 instance인지 물었을 때 true를 반환한다.

그 이유는 자바스크립트에서 만든 모든 object class들은 자바스크립트에 있는 object를 상속한다!!

ctrl + Object를 가르켰을때 해당 Object(interface)가 정의된 부분으로 이동할 수 있다.

[Built in Objects reference...]

JavaScript standard built-in objects, along with their methods and properties.

댓글