생성자 함수
객체 리터럴
let user = {
name : "Mike",
age : 30
}
생성자 함수는 비슷한 객체를 여러개 만들때 쓰임(회원, 상품 등)
function User(name, age){ 생성자 함수는 대부분 첫글자가 대문자
this.name = name;
this.age = age;
}
let user1 = new User("Mike",30); new 연산자를 사용해서 호출
let user2 = new User("Jane",22);
let user3 = new User("Tom",17);
function User(name, age){
this = {} // 실제로 얘네는 쓰지않지만 이런식으로 작동됨
this.name = name;
this.age = age;
return this; // 실제로 얘네는 쓰지않지만 이런식으로 작동됨
}
new 함수명();
function User(name,age){
this.name = name;
this.age = age;
this.sayName = function(){
console.log(this.name); 여기서의 this 는 user5가 됨
만약 user6까지 있다면 둘다 출력되는듯 함
}
}
let user5 = new User ("Han" , 40);
user5.sayName(); // "Han"가 출력
function Item(title, price){
this.title = title;
this.price = price;
this.showPrice = function(){
console.log("가격은 $(price)원 입니다.");
}
}
const item1 = new Item("인형",3000);
const item2 = Item("가방",4000); 만약 new를 안붙히면
그냥 함수가 실행되기 때문에 undefined 출력
const item3 = new Item("지갑",9000);
console.log(item1, item2, item3); // 모두 출력
item1.showPrice(); // 가격은 3000원 입니다. 출력