본문 바로가기

JavaScript/DAY 35 _ 23.10.12

Class basic, prototype

        // basic

        function test(){
            console.log("test 호출됨");
            return 1;
        }

        console.log(test());    // test 호출됨, 1

        const a = new test();   // test 호출됨
        console.log(a);         // test {} : a가 참조주소를 받는 변수가 됐지?

        // 문법

        // 생성자 : 이것도 대문자로 적

        function Student(name, age, score){
            this.name = name;
            this.age = age;
            this.score = score;

            // Student클래스 내에 함수를 넣을 수 있다
            // this.study = function(){
            //     console.log(this.name + "이 공부를 한다");
            // };
        }

        const st1 = new Student("한조", 33, 99);
        console.log(st1);                   // Student {name: '한조', age: 33, score: 99}
        console.log(st1.name, st1.score);   // 한조 99

        console.log(new Student("이렇게도 되겠지", 12, 99));

        // Student클래스 내에 함수를 넣을 수 있다 
        // --> 되긴하나, 객체가 호출시마다 생성이되니까... 데이터 관리가 좀 껄끄럽지?
        // st1.study();

 


        // 프로토타입!!!!

        // 1. 람다식 -> 람다식은 적용이 안돼..ㅎ
        // Student.prototype.study = () =>{
        //     console.log(this.name + "가 공부를 한당")
        // };

        // 2. 익명함수
        // 현재 존재하고 있는 Student 프로토타입에 study 메소드를 추가함.

        Student.prototype.study = function(){
            console.log(this.name + "가 공부를 한당");
        };

        st1.study(); 
        //--> 이러면 바깥에서 메서드를 추가한거니까 데이터관리가 좀 낫겠다.

'JavaScript > DAY 35 _ 23.10.12' 카테고리의 다른 글

자료구조(list, map)  (0) 2023.10.12
Class★  (0) 2023.10.12
JSON  (0) 2023.10.12
closure function2  (0) 2023.10.12
closure function  (0) 2023.10.12