백엔드/node.js

<node.js> node.js 교과서 - ch2 클래스

studying develop 2020. 10. 1. 00:41

음 자바스크립트 문법을 잘 모르니까. ch2 클래스 부분부터 막힌다.

 

프로토타입 상속 예제가 있는데, 음 책에서 자바스크립트는 프로토타입 기반으로 동작한다 는게 뭔소리인지... 

 

[medium.com/@chrisjune_13837/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%83%81%EC%86%8D-7c275edaa9e6] 이걸 보니 클래스 생성, 상속 방식이 다르네, 일단 자바스크립트 좀 알면 좋을텐데 책 사면 비싸니... "자바스크립트 핵심 가이드" 이 책을 저 블로그에서는 본듯 하다.

 

자바스크립트에서 프로토타입, 상속에 대해 알아보자.

 

객체지향 언어는 크게 2개 클래스 기반, 프로토타입 기반 언어로 나뉜다 하는데...

 

 

프로토타입 기반은 클래스가 없고 객체만 있다함... 객체에서 객체를 상속하는 방식.

 


음 사실 위의 내용과 블로그는 봐도 아직 나한테 어려워서 다른 자료를 찾았다.

 

[unikys.tistory.com/316] 자바스크리트에서 프로토타입이 무엇인지 설명한다. 일단 이걸 봐야겠다. 내용중에 자바스크립트에서 객체의 선언은 함수로 한다는 말이있다... 기존 내가 알던 언어들이랑 다르긴 한듯.

 

 

ecma-script에서는 prototype을 다음과 같이 정의한다 한다.

 

prototype: object that provides shared properties for other objects

NOTE- When a constructor creates an object, that object implicitly references the constructor’s “prototype” property for the purpose of resolving property references. The constructor’s “prototype” property can be referenced by the program expression constructor.prototype, and properties added to an object’s prototype are shared, through inheritance, by all objects sharing the prototype. Alternatively, a new object may be created with an explicitly specified prototype by using the Object.create built-in function.


생성자가 객체를 만들면, 객체는 프로퍼티의 reference들을 resolving 하기 위한 목적으로? 내부적으로 생성자의 프로토타입 프로퍼티를 참조한다. 생성자들의 프로타입 프로퍼티를 constructor.prototype 표현으로 참조할수 있다, 그리고 객체의 프로퍼티들에 추가된 프로퍼티들을 상속을 통해서 공유할수 있다, 즉 프로토타입을 공유하는 모든 객체들을 통해서 공유할수 있다는 말. ?alternatively, 새로운 객체를 Object.create의 내장 함수로 명시적으로 특정된 프로토타입으로 생성할수 있다.

 

 

 

즉 보니까. 프로토타입은 같은 프로토타입을 공유하는 객체들끼리 같은걸 공유할수 있다 !.

 

 


 

이건 프로토타입과 컨스트럭터의 관계이다.
이건 순환구조인데 이해가 안된다...

 

 

implicit link는 참조는 할수 있는데 변형은 할수 없다는 말인듯 하다.

'백엔드 > node.js' 카테고리의 다른 글

<node.js> jsonwebtoken에서 payload?  (0) 2020.09.19