getter, setter

1619 ワード

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);