object 데이터를 다루는 함수 만드는 이유..
- object 자료구조가 복잡할때 이득. 꺼내사용하기 좋다.
- obj 의 내부에 있는 변수들을 건드리지 않아 실수 방지 할수 있다.
- 자료 수정 혹은 자료를 다룰때 오류를 미리 방지하는 함수를 만들어 둘 수 있다.
let 사람 = {
name : 'park',
age : 30,
setAge(a){
this.age = parseInt(a);
}
}
사람.setAge(20);
console.log(사람) //{name: 'park', age: 20, setAge: ƒ}
사람.age = 20 으로 할수도 있지만, 데이터를 수정하기에 용이하지 않다.
그래서 함수를 만들어서 속성값을 변경해 보자
함수로 속성값을 변경하면 실수들을 미리 방지하기에 용이하다.
예를들어 숫자 20을 입력해야 하는데 문자 '20' 을 입력 한 경우,
자동으로 parseInt() 이용해서 정수로 바꾸어 주도록 해서 오류를 방지할 수 있다.
getter, setter 왜 쓸까?
- obj 의 함수를 호출시 복잡한 소괄호 없어도 됨.
- 데이터를 다룰 때에 잘못된 부분 거르려고 사용
- 보기 쉽고 직관적.(수정하는애, 가져오는애)
set
- 데이터를 변경할 때 사용 (setter)
- 파라미터가 꼭 1개 있어야 한다. 2개는 안됨.
- 수정해 주는, 데이터를 입력해 주는 함수이기 때문.
get
- 데이터를 꺼내쓸 때 사용 (getter)
- return이 있어야만 한다. 데이터를 꺼내기 때문. 가져오기 때문
- 파라미터가 입력되면 안됨
함수 다루는게 더 편하다면 set, get 안써도 됨. 옵션 같은 느낌.
예시.
이미 있는 object 에 나이 라는 속성값을 추가하고, 그 나이가 1살 더 먹은 결과값을 도출하는 코드이다.
let 사람 = {
name : 'park',
age : 30,
set setAge(a){
this.age = parseInt(a);
},get nextAge(){
return this.age + 1;
}
}
사람.setAge = 20;
console.log(사람.nextAge) ;
console.log(사람); // {name: 'park', age: 20} //age : 20 name : "park" nextAge : 21
class 사람임 {
constructor(){
this.name = 'park';
this.age = 30;
}get nextAges(){
return this.age +1;
}set setAges(s){
this.age = parseInt(s)
};
}
let m = new 사람임();
console.log(m.nextAges) //get 한거 사용후 출력 31
m.setAges = '33'
console.log(m) //사람임 {name: 'park', age: 33} // age : 33 name : "park" nextAges : 34
'JS (Java Script)' 카테고리의 다른 글
destructuring 문법__ 배열의 요소, 오브젝트 요소 변수에 담기. (0) | 2023.09.12 |
---|---|
.js 파일 연결하기 (src) (export, import) (0) | 2023.09.12 |
extends() 와 super() (0) | 2023.09.07 |
class ES6 문법 상속기능 (0) | 2023.09.07 |
Object.create() ES5 문법. 상속기능 구현. (0) | 2023.09.07 |