본문 바로가기
JS

230113 JS ES6 class

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을 했기 때문에 자동생성된다.

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