ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 생성자 함수
    javascript 2023. 4. 8. 15:06
    반응형

    * 객체 리터럴

    let user = {
        name : "Jin",
        age : 30,
    }
    
    //비슷한 객체를 여러개 만들어야하는 상황이 생김 이럴때 생성자 함수를 사용

    * 생성자 함수

     

    - 비슷한 객체를 여러개 만들어야할 때 사용

    - 첫글자를 대문자로 함

    - new 연산자를 사용해서 호출

    function User (name, age){
        this.name = name;
        this.age = age;
    }
    
    let user01 = new User("Jin", 30);//User{name : "Jin", age : 30}
    let user02 = new User("Tom", 10);//User{name : "Tom", age : 10}
    let user03 = new User("Mike", 20);//User{name : "Mike", age : 20}
    
    //같은 식
    function User(name, age){
        //this = {};//1. 빈객체를 만들고 this에 할당함 = 실제로 코드에 없음
        
        this.name = name;
        this.age = age;//2. 함수 본문을 실행하면서 this에 프로퍼티(name, age)들을 추가함
        
        //return this;//3. this를 반환함 = 실제로 코드에 없음
    }
    
    new 함수명();//new를 붙여 함수를 실행하면 이방식으로 알고리즘이 실행됨
    
    //---------------------------------------------------------------------------------------------
    /*메소드 추가*/
    function User (name, age){
        this.name = name;
        this.age = age;
        this.sayName = function(){
        	console.log(this.name);
        }
    }
    
    let user04 = new User("Kim", 50);
    
    user04.sayName();//Kim
    
    //---------------------------------------------------------------------------------------------
    function Item(title, price){
        //this = {};
        
        this.title = title;
        this.price = price;
        this.showPrice = function(){
        	console.log(`가격은 ${price}원 입니다.`);
        }
        
        //return this;
    }
    
    const item01 = new Item{"인형", 3000};
    const item02 = new Item{"가방", 4000};
    const item03 = new Item{"지갑", 9000};
    
    console.log(item01, item02, item03);//Item{title: "인형", price: 3000, showPrice: ∫}
                                        //Item{title: "가방", price: 4000, showPrice: ∫}
                                        //Item{title: "지갑", price: 9000, showPrice: ∫}
    
    /*new를 붙이지 않으면*/
    const item01 = new Item{"인형", 3000};
    const item02 = Item{"가방", 4000};
    const item03 = new Item{"지갑", 9000};
    
    console.log(item01, item02, item03);//Item{title: "인형", price: 3000, showPrice: ∫}
                                        //undefined
                                        //Item{title: "지갑", price: 9000, showPrice: ∫}
    반응형

    'javascript' 카테고리의 다른 글

    심볼 Symbol  (0) 2023.04.09
    객체Objcet에서 사용 가능한 methods와 Computed property  (0) 2023.04.08
    배열 array  (0) 2023.03.28
    객체 Object의 method와 this  (0) 2023.03.28
    객체 Object  (0) 2023.03.28

    댓글

Designed by Tistory.