.png)
new 연산자와 함께 호출해야만 생성자 함수로 동작new 연산자 없이 호출하게 될 경우, 일반 함수로 동작new 연산자와 함께 생성자 함수를 호출하면 자바스크립트 엔진은 암묵적으로 인스턴스를 생성하고 인스턴스를 초기화한 뒤, 암묵적으로 인스턴스를 반환함this가 아닌, 다른 값을 반환하는 것은 생성자 함수의 기본 동작을 훼손 → 생성자 함수 내부에서 return문은 반드시 생략function Person(name, age) {
this.name = name;
this.age = age;
this.sayHello = () => {
return `Hello, ${this.name}`;
};
}
const surim = new Person('surim', 100);
console.log(surim);
// Person { name: 'surim', age: 100, sayHello: [λ] }
console.log(surim.sayHello());
// Hello, surim
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHello() {
return `Hello, ${this.name}`;
}
}
const surim = new Person('surim', 100);
console.log(surim);
// Person { name: 'surim', age: 100, sayHello: [λ] }
console.log(surim.sayHello());
// Hello, surim
new 연산자 없이 호출하면 일반 함수로서 호출되기 때문에 별도 처리 필요extends, super 키워드 미제공strict mode가 지정되지 않음new연산자 없이 호출하면 에러 발생extends, super 키워드 제공strict mode가 지정되어 실행되며 strict mode 해제 불가위의 내용은 생성자 함수와 클래스를 공부하며 개인적으로 정리한 내용입니다.
잘 읽었습니다. 감사합니다 :)