관리 메뉴

Silver Library (Archived)

class in JS 본문

CS Library/JavaScript - Data Structure

class in JS

Chesed Kim 2021. 7. 18. 22:40
반응형

- sayhi 와 같은 것은 ES6 축약형 method. 

- sayhi 와 같은 ES6 축약형 method 를 arrow function 로 정의하는 것은 좋지 않음 (bad).

- prototype 의 property 계열도 마찬가지로, arrow function 으로 해당 prototype method 를 정의하는 것은 좋지 않음(bad).

 

왜 그런가? 라고 한다면 : arrow function 으로 declaration 시, 이 후 this 참조는 해당 함수가 아닌, 전역 객체(window)를 참조한다.

 

이에, 일반 함수로 할당 하는 것이 좋겠습니다.

또한, ES6 method 축약 표현으로 정의한 ES6 method 를 사용하는 것이 좋겠습니다.

 

핵심은 해당 class 내부에서 작동하게 하는 것. arrow function 사용을 통해 해당 함수를 선언 할 경우, class 내부가 아닌 외부를 scoping 하게 되는 것으로 보임. 주의.

 

그 외:

<주의! 기억이 다소 불확실함! 신뢰도 낮음! 재점검 필요.>

class Derieved extends Base {} 는 일종의 sub class 개념으로 보여짐. 넘겨주기식 클래스.

 

- super 그리고 [[HomeObject]]

- derived

- constructor 의 암묵적(implicitly) 생성 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Classes/constructor

 

constructor - JavaScript | MDN

constructor 메서드는 class 내에서 객체를 생성하고 초기화하기 위한 특별한 메서드입니다.

developer.mozilla.org

- (arguments) // 이 객체는, 인수 전달용도로(도) 쓰임

- 가변 인자 함수

- window 전역, 전역 프로퍼티로 window.name (?).

- foo()

- 스코프가 핵심.

- ... // (인수) - 관련 개념 : Rest parameter

- [] // (배열)