analogcoding

Object.create() & Class & Super Method 본문

Be well coding/Learn more

Object.create() & Class & Super Method

be well 2019. 6. 3. 15:59

Object.create() 메소드

 

객체를 인자로 받아  지정된 프로토타입 객체 및 속성(property)을 갖는 새 객체를 만든다.

 

Object.create() 라는 메소드를 통해서 __proto__ 속성에 직접 접근하지않고 프로토타입 체인을 연결할 수 있다.

 

(proto 매개변수가 null 또는 객체가 아닌 경우 TypeError 가 발생한다.

 

Class

class는 javascript 에서 클래스 기반 언어를 사용하지 않지만 편의를 위해? ES6 에서 도입된 문법이다.
(ES6의 class 키워드는 겉은 class 이더라도, 내부적으로 프로토타입 기반으로 구성되어있다.)

 

prototpye 과 class 의 차이를 코드로 먼저 보자면 거의 비슷하지만 다른 class 기반 언어처럼 적어 사용한다.

확실히 사용해보니 원래 방식보다 편했다. 단점에 대한 것도 읽어보았지만 코드 자체를 작성하는 건 편해서 앞으로 자주 쓰이는 
문법일 것 같다.

 

Super 

 

아래 코드처럼 부모를 참조한 생성자가 생성되었을 때 생성자에 다른 기능을 추가하고 싶을 때 여러가지를 수정해야한다면 
굉장히 많은 중복이 발생한다.



여기서 부모에서의 기능과 중복되는 부분을 묶어서 자식에 간단하게 작성하고 추가로 작업할 수 있게 가능해진다.

위 코드에서 class 생성자에 기능을 추가하려면 기존기능까지 적어줘야하지만 super 메소드를 사용하면 중복을 줄일 수 있다.

 

'Be well coding > Learn more' 카테고리의 다른 글

N-Queens  (0) 2019.06.10
Interact with Server - what is Web Architecture  (0) 2019.06.08
Inheritance Patterns  (0) 2019.06.03
Data structure - part.2  (0) 2019.05.29
Data structure - part.1  (0) 2019.05.29
Comments