JavaScript에서는 시스템 내장 함수와 사용자 정의 함수를 모두 포함하여 모든 적법한 함수를 객체의 생성자로 사용할 수 있습니다. 함수가 생성자로 실행되면 내부 this 속성은 함수 자체를 참조합니다.
일반적으로 생성자에는 반환 값이 없으며 this 포인터에 의해 전달된 개체를 초기화하고 아무것도 반환하지 않습니다. 함수가 값을 반환하는 경우 반환된 개체는 새 표현식의 값이 됩니다. 공식적인 관점에서 함수가 생성자로 실행되는지 아니면 일반 함수로 실행되는지의 유일한 차이점은 new 연산자를 사용하는지 여부입니다.
위 설명은 실제로 더 정확한 의미를 가지며, 함수가 값을 반환하는 상황을 함수의 반환 값이 참조 유형과 값 유형인 두 가지 상황으로 나눕니다.
함수의 반환 값이 참조 유형(배열, 객체 또는 함수)의 데이터인 경우 new 연산자를 생성자로 사용하여 이 함수를 생성하면 연산 결과가 다음으로 대체됩니다. 이때 생성자 본문의 this 값은 손실되고 반환된 개체로 대체됩니다. 예: