JS

230113 JS ES6 class

주영재 2023. 1. 13. 18:14

class 

일반 HTML에서는 굳이 class를 사용하진 않는다.
react의 class 컴포넌트를 사용한다면 알아두기.

1.클래스의 멤버변수를 선언할 때는 키워드를 사용하지 않음(구형브라우저에서는 지원하지 않을 수도 있음)

멤버변수, 생성자, 함수가 있음

-var or let등을 쓰지 않고 변수를 선언하면 멤버변수가 됨.
객체변수도 변수명={} 식으로.

-생성자->JS의 생성자는 1개. 생성자 중복이 안됨.
멤버변수는 선언하지 않더라도 this.변수명을 지칭하면 자동 생성됨
constructor(){} 

-함수도 let 등의 타입을 적지 않음.

생성자가 아닌 함수에서 this.변수명을 써도 생성된다!

 

 class Person {
            //멤버변수
            name = "홍길동";
            age = 20;
            state = { a: 1 };

            //생성자는 JS에서 반드시 1개입니다.
            //JS는 this키워드를 지칭하면 멤버변수가 자동생성됩니다.
            constructor(addr) {this.addr=addr}

            //함수
            func = () => console.log("func 실행")
        }

        //객체로 생성 - 기본생성자가 없어지더라도 허용됩니다.
        let p = new Person();

        console.log(p.name);//멤버변수 접근
        console.log(p.age);//멤버변수 접근
        console.log(p.state);//멤버변수 접근
        console.log(p.state.a);//멤버변수 중 객체의 값 접근

        p.func();


        let p2=new Person("서울");
        console.log(p2.addr);//addr이 생성되어 있음.

addr변수는 선언하지 않았지만 생성자에서 this.addr을 했기 때문에 자동생성된다.

객체로 생성할 때 기본생성자가 없어지더라도(매개변수를 받는 새로운 생성자가 생겨도) 생성이 가능