생성자 반환 값과 [Instanceof] 연산자
JavaScript에서 생성자 함수는 생성된 개체가 아닌 다른 값을 반환할 수 있습니다. 이러한 상황을 이해하는 것은 instanceof 연산자의 예상치 못한 결과와 같은 런타임 오류를 방지하는 데 중요합니다.
ECMAScript 3판 사양은 생성자 동작을 제어하는 [[Construct]] 속성을 정의합니다. 사양에 따르면:
따라서 생성자는 인스턴스오브 연산자가 true를 반환하는 것을 방지하기 위해 기본이 아닌 값(예: 함수 또는 배열)을 반환할 수 있습니다.
예를 들면 다음과 같습니다.
function Foo() { return []; } const foo = new Foo(); console.log(foo instanceof Foo); // false
생성자가 배열(객체가 아닌)을 반환하므로 인스턴스 확인이 실패합니다. 반대로 기본 값(예: null 또는 정의되지 않음)을 반환하면 여전히 true가 반환됩니다.
요약하면 생성자가 반환한 값은 결과 인스턴스에 영향을 줄 수 있습니다. 개발자는 [[Construct]] 속성에 설명된 조건을 이해함으로써 예상치 못한 동작을 방지하고 정확한 클래스 상속 검사를 보장할 수 있습니다.
위 내용은 JavaScript 생성자가 생성된 객체 이외의 값을 반환할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!