생성자 함수와 프로토타입

생성자 함수

기본 방식

const student = {
  name: "suconding",
  age: 20,
  gender: "male",
  height: 185,
  // method
  introduce: function () {
    return `Hello, my name is ${this.name} and I'm ${this.age} years old.`;
  },
};

console.log(student.age); // 일반적인 방법
console.log(student["gender"]); // 문자열로 키값이 지정되는 경우 사용됨

// 그 외의 사용방법
for (let key in student) {
  // 키 값을 문자열로 반환함
  console.log(student[key]);
}

생성자 함수: 객체를 만드는 함수를 만들 수 있음

생성자 함수

function Student() {
  // this = {} 암묵적으로 실행되는 과정
  this.name = "sucoding",
  this.age = 20;
  this.gender = "male";
  this.introduce = function () {
    return `Hello, my name is ${this.name} and I'm ${this.age} years old.`;
  },
  // return this
}

const student1 = new Student();
console.log(student1);
console.log({});
// 출력 결과
Student { ... } // 객체 이름이 보인다.
{}

매개변수

function Student(name, age, gender) { // 함수도 전달할 수 있지만 그 경우는 동적인 함수임
  // this = {} 암묵적으로 실행되는 과정
  this.name = name;
  this.age = age;
  this.gender = gender;
  this.introduce = function () {
    return `Hello, my name is ${this.name} and I'm ${this.age} years old.`;
  };
  // return this
}

const student1 = new Student("suconding", 20, "male");

장점

기본 생성? 생성자 함수?

하나를 만들 때 ⇒ 기본으로 선언