객체지향 : 8. getter, setter 메소드

Jian·2022년 9월 19일
0

JavaScript

목록 보기
5/27

class내에서 자료인출/수정함수 사용하기

사용이유

데이터 무결성을 지키기위해

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이 출력된다.

getter, setter

함수 내에서 위 메소드 이용해 정의하면
특별한 방식으로 자료를 꺼내거나 수정할 수 있다.

메소드 생성시 클래스 내 & 생성자 밖에서 사용가능(생성자 내는 X)

문법

getter


메소드 생성 시

get 메소드명(){ return this.클래스속성 + 1 }

  • 파라미터 사용 불가
  • 메소드 내 return 꼭 있어야 함

메소드 사용 시

인스턴스.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이 출력된다.

setter

메소드 생성 시

set 메소드명(파라미터) { this.변경할속성 = 파라미터 }

  • 파라미터 1개 있어야 함

메소드 사용 시

인스턴스.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형으로 인식된다.
profile
개발 블로그

0개의 댓글