-
생성자 함수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