728x90
반응형
코어 자바스크립트 내용을 이해하며 정리하기!
자바스크립트
5-1. 스태틱 메쏘드 / 프로토타입의 메쏘드
프로토타입 메소드와 스태틱 메소드의 차이를 인스턴스에 상속되는지(참조되는지) 에 따라 달라질 수 있다.
프로토타입 : instance 에서 바로 호출 가능
스태틱 메소드 : instance 에서 바로 호출 불가능
이라는 극명한 차이가 있다. 아래의 예시를 살펴보자. (출처 : 코어 자바스크립트 / 정재남)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
var Rectangle = function (width, height) {
this.width = width;
this.height = height;
}
Rectangle.prototype.getArea = function() {
//Rectangle 의 prototype 의 공통 method 정의 방식
return this.width * this.height;
}
Rectangle.isRectangle = function(instance) {
// 스태틱 매소드
return instance instanceof Rectangle&& instance.width>0 && instance.height > 0;
}
var rect1 = new Rectangle(3,4);
console.log(rect1.getArea()); // 12(0)
console.log(rect1.isRectangle(rect1)); // Error 발생
console.log(Rectangle.isRectangle(rect1)); // true
|
cs |
위의 예시처럼 프로토타입의 getArea 는 instance 로 rect1 이 넘어가서 바로 결과값이 나오지만
isRectangle 이라는 static type 의 메소드는 instance 로 바로 접근이 불가능하다...!
그대신 static type 의 method 는 Rectangle 이라는 클라스로 바로 접근 가능.
(도움이 된 블로그)
https://blog.outsider.ne.kr/1269
728x90
반응형
'이유's Programming > JavaScript' 카테고리의 다른 글
함수형 프로그래밍에 대한 introduction / 선언형 프로그래밍/ 함수형 프로그래밍/ functional programming (2) | 2021.08.12 |
---|---|
Redux 에서 Mobx 상태관리 도입기 - 참고 (0) | 2021.03.23 |
[ 구글 채널 ] Scheduling Tasks - HTTP 203 (1) | 2021.03.02 |
[ React -1 ] React.memo 를 사용하여 컴포넌트 성능 최적화하기 . / React.memo 사용할 때 그리고 사용하지 않을 때 팁 정리 (0) | 2021.01.26 |
자바스크립트 MAP - array 는 배열로 관리하기. / array 를 key 로 접근 (0) | 2021.01.23 |