티스토리 뷰
자바스크립트에 클래스는 없지만 함수(function)와 new를 통해 클래스를 비스무리하게 흉내낼 수 있습니다.
function Person() {
this.eyes = 2;
this.nose = 1;
}
var kim = new Person();
var park = new Person();
console.log(kim.eyes); // => 2
console.log(kim.nose); // => 1
console.log(park.eyes); // => 2
console.log(park.nose); // => 1
kim과 park은 eyes와 nose를 공통적으로 가지고 있는데, 메모리에는 eyes와 nose가 두 개씩 총 4개 할당됩니다. 객체를100개 만들면 200개의 변수가 메모리에 할당되겠죠?
바로 이런 문제를 프로토타입으로 해결할 수 있습니다.
function Person() {}
Person.prototype.eyes = 2;
Person.prototype.nose = 1;
var kim = new Person();
var park = new Person():
console.log(kim.eyes); // => 2
...
자바스크립트 개발을 하시는 분이라면 아마 써보진 않았어도 최소한 본 적은 있을겁니다. 간단히 설명하자면 Person.prototype이라는 빈 Object가 어딘가에 존재하고, Person 함수로부터 생성된 객체(kim, park)들은 어딘가에 존재하는 Object에 들어있는 값을 모두 갖다쓸 수 있습니다.
즉, eyes와 nose를 어딘가에 있는 빈 공간에 넣어놓고 kim과 park이 공유해서 사용하는 것이죠. 이해되셨나요?
출처: https://medium.com/@bluesh55/javascript-prototype-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-f8e67c286b67
'Node.js' 카테고리의 다른 글
[node.js]주소 문자열과 요청 파라미터 다루기 (0) | 2017.09.17 |
---|---|
[node.js]프로토 타입 2 (0) | 2017.09.17 |
[node.js]콜백 함수 이해하기 (2) | 2017.09.17 |
[node.js]배열 이해하기 (0) | 2017.09.17 |
[node.js]자바 스크립트의 객체와 함수 이해하기 (0) | 2017.09.17 |
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- programming
- 스프링
- 안드로이드
- Spring
- TensorFlow
- 코드엔진
- 알고리즘
- 리버싱
- C langauge
- C언어
- Controller
- 감자코딩
- Android
- 복습
- 개발하는 관광이
- db
- BFS
- node.js
- 백준
- 감자개발자
- 백준알고리즘
- 학교
- Algorigm
- 텐서플로우
- MVC
- 초보자를 위한 C언어 300제
- 프로그래밍
- 머신러닝
- node
- 노드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함