<aside> 🔥 객체를 생성할 때 사용하는 함수
</aside>
const user1 = {
name: "John",
age: 30,
gender: "male",
}
const user2 = {
name: "Anna",
age: 20,
gender: "female",
}
const user3 = {
name: "Alex",
age: 25,
gender: "male",
}
⇒ 객체의 속성이 동일하다는 공통점이 이음
<aside> 💡 객체의 속성이 같고 값이 다른 경우에 객체를 생성할 수 있는 생성자 함수를 제공
</aside>
function User(name, age, gender) {
// this = {}
this.name = name;
this.age = age;
this.gender = gender;
this.introduce = function () {
console.log(
`이름: ${this.name}, 나이: ${this.age}, 성별: ${this.gender}`
)
}
// return this
}
// new라는 키워드를 붙이면 주석같은 코드가 샐행된다고 생각하면 될 듯
const user1 = new User("Jhone", 30, "male");
const user1 = new User("Anna", 20, "female");
const user1 = new User("Alex", 25, "male");
user1.introduce() // 호출한 객체가 user1이기 때문에 this가 user1이 돼어 해당 속성 값으로 출력
<aside> 💡 생성자의 속성만 수정하면 되기 때문에 유지보수가 쉬워짐
</aside>
객체를 출력할 때 나오는 Protoype은 뭘까?
<aside> 🔥 모든 함수(생성자)는 자신과 1 : 1로 매칭되는 프로토타입을 가짐
</aside>
함수에서 프로토타입 공간으로 어떻게 접근함?
func → prototype: 함수의 prototype속성 참조 prototype → func: constructor 참조
⇒ 객체와 프로토타입은 상호 참조 가능