■ 함수로 오브젝트 데이터를 꺼내는 방법
// age 데이터를 꺼내서 사용하기 위한 함수 활용
var 사람 = {
name : 'Kim',
age : 30,
nextAge(){
return this.age + 1
}
}
// age 데이터를 수정하기 위한 함수 활용
var 사람 = {
name : 'Kim',
age : 30,
setAge(나이){
this.age = parseInt(나이)
}
}
사람.setAge('200'); //문자 넣었는데도 숫자 200으로 저장됨
objcet 안의 데이터를 꺼낼 때 위와 같이 함수를 사용하여 꺼낼 수가 있습니다.
그렇다면 왜 굳이 데이터를 함수를 만들어서 꺼낼까요?
1. object 안의 데이터가 복잡해질 수록 함수로 데이터를 꺼내는 것이 쉽습니다.
2. 내부의 변수(name, age 등)를 건드리지 않아 실수를 방지할 수 있습니다.
다만, 이렇게 함수를 만들어서 쓴다면 소괄호를 쓰는 등 데이터 집어넣는 것이 복잡해집니다.
이럴때는 get 과 set 키워드를 함수 옆에 써서 조금 더 코드를 깔끔하게 쓰는 것이 가능합니다.
■ setter
var 사람 = {
name : 'Kim',
age : 30,
set setAge(나이){
this.age = parseInt(나이)
}
}
사람.setAge = 40; //set 키워드를 추가하면 이렇게 함수를 사용가능
set 키워드를 추가하면 등호로 데이터를 입력할 수 있습니다.
데이터를 입력, 수정해주는 함수들에 쓸 수 있으며, 데이터 입력을 위해 파라미터가 한 개 이상 있어야 합니다.
■ getter
var 사람 = {
name : 'Kim',
age : 30,
get nextAge(){
return this.age + 1
}
}
console.log( 사람.nextAge ) //get 키워드를 추가하면 이렇게 함수를 사용가능
get 키워드를 추가하면 소괄호 없이 함수의 데이터를 꺼낼 수 있습니다.
get 함수는 데이터를 꺼내는 함수에 쓸 수 있으며, 파라미터가 있으면 안되고 함수 내에 return을 가져야 합니다.
■ class 안에서 get 과 set 사용
class 사람 {
constructor(){
this.name = 'Park';
this.age = 20;
}
get nextAge(){
return this.age + 1
}
set setAge(나이){
this.age = 나이;
}
}
var 사람1 = new 사람();
'JavaScript' 카테고리의 다른 글
JavaScript(export, import) (0) | 2023.06.20 |
---|---|
JavaScript(Destructuring) (0) | 2023.06.20 |
JavaScript(prototype과 class를 활용한 상속 기능) (0) | 2023.06.13 |
JavaScript(Reference Data Type, constructor 함수) (0) | 2023.06.09 |
JavaScript(default parameter, arguments와 rest parameter) (0) | 2023.06.01 |