티스토리 뷰

Javascript

Get, Set을 통한 속성 접근 관리하기

뮹뭉묵목몽묭 2019. 7. 17. 22:14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
let user = {};
Object.defineProperty (user, "age", {
get : function () {
    return this._age;
},
set : function (age) {
    if (age<0) {
        console.log('0보다 작은값을 불가능합니다.');
    } else {
        this._age=age;
    }
},
enumerable : true
});
 
user.age=10;
console.log(user.age);
user.age=-1;
console.log(user.age);
cs

속성 기술자를 통해 user 객체의 age 속성을 정의했다. 이때 값에 접근하는 방식을 정의하는 객체를 전달하는데 이 객체를 접근 기술자라 하고, get 과 set을 메소드로 가진다. age 속성의 접근 기술자의 get 메소드는 속성에 접근할 때 호출된다. 그리고 set 메소드는 속성에 값을 대입할 때 호출된다.

8번라인에서 0보다 작은 값을 대입을 불가능하게 조건식을 설정했다. 그러므로 18라인에서 -1로 대입했을때는 콘솔에 에러가 출력이 된다.

참고 : 해당 예제에서 속성 이름에 _를 붙이는 이유는 비공개(private)속성임을 나타낸다 자바스크립트에서 객체의 속성 접근 제한자가 없어서 모든 속성은 공개(public)이다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함