var 사람 = {
name: "Park",
age: 30,
nextAge() {
return this.age + 1;
},
setAge(나이) {
this.age = parseInt(나이);
},
};
사람.setAge("20");
console.log(사람.nextAge()); //사람.age + 1 이랑 같다.
// 왜 쓸까?
// 실제에서는 이렇게 30이 아니라,
// 큰 array 나 큰 object 일텐데,
// 사람.age[1].age2.age3 이렇게 복잡하게 하는 게 아니라.
// 미리 끄집어내는 방법을 정의해놓으면 코드를 보기좋게 만든다.
// 2. object 자료 수정시 편리함
// 사람.age = 1; (초보가 object 데이터 수정하는 법)
// 실수를 할 수 있다. 숫자를 넣어야하는데, 문자를 넣었다. 사람.age = "1"
// setter 함수를 만들어서 셋팅해둘수 있다.
// 안전장치 (데이터의 무결성)
// 데이터를 꺼내거나 / 수정하기 좋다.
// 그럴때 편리 && 실수방지 && 관리용이
// es5 부터 get, set 제공.
var 사람2 = {
name: "Park",
age: 30,
get nextAge() {
//getter,
return this.age + 1;
},
set setAge(나이) {
//setter
this.age = parseInt(나이);
},
};
사람2.setAge = "20";
console.log(사람.nextAge); //사람.age + 1 이랑 같다.
//getter 일때는 return이 있어야함.
//setter 일때는 파리미터가 1개 있어야 합니다.2개 이상 있으면 Uncaught SyntaxError: Setter must have exactly one formal parameter.
class 유저 {
constructor() {
this.name = "Park";
this.age = 20;
}
get getNextAge() {
return this.age;
}
set setAge(age) {
this.age = age;
}
}
var 유저1 = new 유저();
유저1.setAge = 300;
console.log(유저1.getNextAge);