자바스크립트에서 getter와 setter는 객체 내부의 데이터를 안전하게 읽고 수정하기 위한 문법입니다. 단순히 함수로 데이터를 꺼내거나 수정하는 방식을 대체하여, 코드의 직관성과 데이터 무결성을 높여줍니다.
parseInt()를 사용할 수 있습니다.var 사람 = {
name: 'Kim',
age: 30,
// 내년 나이를 계산하는 함수
nextAge() {
return this.age + 1;
}
};
console.log(사람.nextAge()); // 출력: 31
사람.nextAge()를 호출하면 자동으로 this.age + 1 값을 반환합니다.var 사람 = {
name: 'Kim',
age: 30,
// 나이를 수정하는 함수
setAge(나이) {
this.age = 나이;
}
};
사람.setAge(40); // 나이를 40으로 수정
var 사람 = {
name: 'Kim',
age: 30,
setAge(나이) {
// 실수로 문자열이 들어와도 숫자로 변환
this.age = parseInt(나이);
}
};
사람.setAge('200'); // 숫자 200으로 저장
var 사람 = {
name: 'Kim',
age: 30,
// set 키워드를 사용하여 setter 정의
set setAge(나이) {
this.age = parseInt(나이);
}
};
사람.setAge = 40; // 함수 호출 없이 간단히 나이 수정
var 사람 = {
name: 'Kim',
age: 30,
// get 키워드를 사용하여 getter 정의
get nextAge() {
return this.age + 1;
}
};
console.log(사람.nextAge); // 소괄호 없이 값을 가져옴, 출력: 31
클래스 내부에서도 동일한 문법을 사용할 수 있습니다.
class 사람 {
constructor() {
this.name = 'Park';
this.age = 20;
}
// getter: 내년 나이 계산
get nextAge() {
return this.age + 1;
}
// setter: 나이 수정
set setAge(나이) {
this.age = 나이;
}
}
const 사람1 = new 사람();
console.log(사람1.nextAge); // 출력: 21
사람1.setAge = 50;
console.log(사람1.age); // 출력: 50
return 문을 포함하여 값을 반환해야 합니다.getter와 setter는 객체 내의 데이터를 보호하고, 무결성을 유지하며, 코드를 더 직관적이고 안전하게 만드는 ES6 신문법입니다. 직접 데이터를 수정하거나 접근하는 대신, 내부 로직을 캡슐화하여 함수 또는 키워드를 통해 간접적으로 데이터를 다루는 방식은 유지보수와 확장성 측면에서 큰 이점을 제공합니다.