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 | 31 |
Tags
- TIL #Today I Learned # 기록 # 회고 #Udemy
- 웹페이지제작 #
- javascript #statement #expression #difference
- javascript #event #onclick #js
- hackerrank #python #algorithm #해커랭크 #파이썬 #알고리즘
- 블로그만들기 #웹사이트만들기 #
- 불리언 #Boolean #number #string #symbol #null #undefined
- TIL #Today I Learned #
- 고스트 블로그 #
- 블로그 셀프제작
- 기록 #회고
- 자바스크립트 #javascript #datatype #데이터타입 #자료형
- #TIL #Today I Learned #기록 #회고 #ternary statement #swich statement #스위치 반복문 #
- single source of truth란 #single source of truth #자료의중복 #자료의비정합성 #비정합성 #리팩토링
- Hackerrank #해커랭크 #python #파이썬 #알고리즘 #Algorithm
- 강의 #느낀점 #snowfox #스노우폭스 #김승호회장
- javascript '===' #javascript #TIL #Today I Learned #기록 #회고
Archives
- Today
- Total
well-balanced
[JavaScript] getter와 setter 본문
- getter : 객체의 property를 가져오는 함수
- getter의 값 계산은 실제 값이 필요할 때만 이루어진다. 즉 쓸데없는 CPU 낭비가 없음.
- getter가 호출될 때 처음 값이 계산되고, 이후의 호출은 다시 계산하지 않고 캐시 값을 반환함.
- setter : 객체의 property를 설정하는 함수
- setter는 오직 하나의 parameter 만을 가질 수 있다.
class Name {
constructor(first,last) {
this._first = first;
this._last = last;
this._name = first + ' ' + last
}
}
const Woody = new Name('Woosik','kim')
console.log(Woody._name) // Woosik kim
Woody._last = 'Lee';
console.log(Woody) // Name { _first: 'Woosik', _last: 'Lee', _name: 'Woosik kim' }
만약 getter와 setter 없이 코드를 짠다면 위와 같이 Woody._last = 'Lee'
로 바꾸었지만, _name
property 에는 반영되지 않는 것을 볼 수 있다.
그렇다면 getter와 setter 메소드를 넣어 코드를 바꿔보자.
class Name {
constructor(first,last) {
this._first = first;
this._last = last;
this._name = first + ' ' + last
}
get first() {
return this._first
}
set first(newFirst) {
this._first = newFirst;
this._name = this._first + ' ' +this._last
}
get last() {
return this._last
}
set last(newLast) {
this._last = newLast;
this._name = this._first + ' ' + this._last
}
get name() {
return this._name
}
}
const Woody = new Name('Woosik','Kim')
Woody.first = 'Woody'
console.log(Woody.first) // Woody
Woody.last = 'Lee'
console.log(Woody) // Name { _first: 'Woody', _last: 'Lee', _name: 'Woody Lee' }
_name
값을 따로 설정해주지도 않았는데 동적으로 _name
값이 변경된 것을 볼 수 있다. 그리고 getter와 setter를 이용해 Woody.first = 'Woody'
와 console.log(Woody.first)
같이 _property
처럼 직접 property에 접근하지 않고 값을 가져오거나 설정할 수 있다.
공부하면서 참고한 사이트
'JavaScript' 카테고리의 다른 글
[Hackerrank JavaScript] Loop (0) | 2019.12.22 |
---|---|
[node] 깃헙 웹사이트를 KST 기준으로 크롤링하는 방법 (0) | 2019.11.24 |
[JavaScript] '==' 과 '==='의 차이 (2) | 2019.11.14 |
[Javascript] event (onclick, onchange, onkeydown) (0) | 2019.10.31 |
Comments