Class

성민개발로그·2021년 10월 18일
0

자바스크립트

목록 보기
7/11
post-thumbnail

class 는 정보를 만들지 않고 "틀"을 만드는것이다
class:template

object 는 "instance of a class" 클래스로 인한 정보가
들어가진 객체를 object 라고 불린다.

object:생성자는 주어진 값의 객체 래퍼를 생성합니다. 주어진 값이 null이거나 undefined면 빈 객체를 생성해 반환하고, 그렇지 않으면 값에 맞는 자료형의 객체를 반환합니다. 만약 값이 이미 객체이면 그 값을 그대로 반환합니다.

1.class declarations

class Person{
    //constructor
    constructor(name,age){
        // fields
        this.name = name;
        this.age=age;
    }
    //methods
    speak(){
        console.log(`${this.name}:hello!`)
    }
}

const ellie = new Person('ellie',20);
console.log(ellie.name);// ellie
console.log(ellie.age);//20
ellie.speak();//ellie:hello!

2.Getter and Setter

접근자 프로퍼티는 'getter(획득자)'와 ‘setter(설정자)’ 메서드로 표현됩니다. 객체 리터럴 안에서 getter와 setter 메서드는 get과 set으로 나타낼 수 있습니다.

Getter and Setter 활용하기

getter와 setter를 ‘실제’ 프로퍼티 값을 감싸는 래퍼(wrapper)처럼 사용하면, 프로퍼티 값을 원하는 대로 통제할 수 있습니다.

아래 예시에선 User class 에서 age을 위한 setter를 만들어 age의 값이 0이하로 가는걸 방지 하고있습니다. 실제 값은 별도의 프로퍼티 _age에 저장됩니다.

class User{
    constructor(firstName,lastName,age){
      this.firstName = firstName;
      this.lastName = lastName;
      this.age = age;
    }
    get age(){
        return this._age;
    }
    set age(value){
       this._age = value<0 ? 0:value;

    }
}

const user1 = new User('Steve','Job',-1);
console.log(user1.age)//0

3.static properties and methods

0개의 댓글