Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- localtunnel
- webpack
- fetch 취소
- 로드마크
- Call stack
- relatedTarget
- 화살표 함수
- pushstate
- 넘블
- 비동기 작업
- hoisting
- 매클로태스크
- 실행 컨택스트
- 클론코딩
- 이터러블
- 유사배열
- 마이크로태스크
- 웹팩
- 번들러
- 호출 스택
- 자바스크립트
- 로컬터널
- 렉시컬 환경
- AbortController
- 이벤트 루프
- JavaScript
- 호이스팅
- 함수형
- debounce
- Lexical environment
Archives
- Today
- Total
내가 보려고 만든 개발 공부 일지
Javascript - Prototype object 본문
이전 글에 이어서 이번엔 프로토타입의 Prototype object 란 개념에 대해 정리해본다.
함수는 정의될때 prototype object가 어딘가에 같이 생기고 생성된 함수는 .prototype이라는 속성으로 prototype object에 접근할 수 있다.
이 prototype object는 일반적인 객체와 같고 안에는 constructor(생성자) 와 __proto__ 속성을 가지고 있다.
또한 prototype object는 일반객체이므로 속성을 맘대로 추가/삭제 할 수 있다.
(추가/삭제 시 이 함수로 만들어진 객체들은 이 값을 공유하므로 당연히 객체들의 속성들도 그대로 바뀐다.)
function Person(){}
var kim = new Person();
constructor는 정의된 함수를 가리킨다 (위 예제에선 Person을 가리키게된다.)
생성자가 있다는건 new를 통해 객체를 만들어낼 수 있다는 뜻인데, 이것이 함수만이 new를 사용할 수 있는 이유다.
(이전 프로토타입 글에서 모든 객체는 언제나 함수에 의해 생성된다고 했던 이유)
var obj = {};
var a = nwe obj();
// obj는 함수가 아니므로(=생성자 자격이 없으므로)
// obj is not a constructor 라는 에러가 발생함.
* 요약
함수가 정의되면
1. 해당 함수에는 constructor (생성자) 자격이 부여되고 new 로 객체를 생성할 수 있다.
2. prototype object가 어딘가에 만들어진다.
다음 글에선 Prototype link 에 대해 공부하고 정리해보겠다.
참고 : https://developer.mozilla.org/ko/docs/Learn/JavaScript/Objects/Object_prototypes
'Javascript' 카테고리의 다른 글
함수형 프로그래밍 vs 객체지향 프로그래밍 (0) | 2021.12.10 |
---|---|
history.pushState ( 화면 전환 ) (0) | 2021.09.21 |
Javascript - in vs hasOwnProperty (0) | 2021.07.12 |
Javascript - 프로토타입? (0) | 2021.07.12 |
call() 과 apply() 의 this 바인딩 (0) | 2021.07.02 |
Comments