데이터 무결성을 지키기위해
get
데이터를 실수로 수정하는 것을 막을 수 있다.
어떤 속성값을 복잡한 연산을 거친 후 인출해야할 때 사용하면 편리하다.
set
set메소드에 안전장치 걸어둠으로서, 데이터 변경 시 실수를 미연에 방지할 수 있음.
var human = {
name : 'Kim',
age : 30,
nextAge(){
return this.age + 1
}
}
var person1 = new human('kim', 20)
// 콘솔에 person1.nextAge()입력하면 21이 출력된다.
var 사람 = {
name : 'Kim',
age : 30,
setAge(나이){
this.age = 나이
}
}
var person1 = new human('kim', 20)
// 콘솔에 person1.setAge(40)입력하면 40이 출력된다.
함수 내에서 위 메소드 이용해 정의하면
특별한 방식으로 자료를 꺼내거나 수정할 수 있다.
메소드 생성시 클래스 내 & 생성자 밖에서 사용가능(생성자 내는 X)
메소드 생성 시
get 메소드명(){ return this.클래스속성 + 1 }
메소드 사용 시
인스턴스.getter함수
(소괄호 X)
class human {
constructor(name, age){
this.name = name;
this.age = age;
}
get nextAge(){
return this.age + 1
}
}
var person1 = new human('kim', 20)
console.log(person1.nextAge)
// 브라우저 콘솔에 21이 출력된다.
메소드 생성 시
set 메소드명(파라미터) { this.변경할속성 = 파라미터 }
메소드 사용 시
인스턴스.setter함수 = 변경할 값
(소괄호 대신 등호 사용)
class human {
constructor(name, age){
this.name = name;
this.age = age;
}
set addAge(age){
this.age = parseInt(age)
}
}
var person1 = new human('kim', 20)
person1.addAge = '50';
// 콘솔에 person1.age를 출력해보면 50으로 변경되어 있다.
// string으로 입력했어도 setter 덕에 int형으로 인식된다.