>  기사  >  웹 프론트엔드  >  JavaScript 생성자가 'this'가 아닌 다른 것을 반환할 수 있는 경우는 언제입니까?

JavaScript 생성자가 'this'가 아닌 다른 것을 반환할 수 있는 경우는 언제입니까?

DDD
DDD원래의
2024-11-11 07:11:02616검색

When Can a JavaScript Constructor Return Something Other Than 'this'?

생성자가 'this' 이외의 값을 반환하는 인스턴스

JavaScript에서 new 키워드를 사용하여 생성자를 호출하면 일반적으로 다음을 반환합니다. 새로 생성된 개체입니다. 그러나 특정 상황에서는 이를 피하기 위해 다른 값을 반환할 수 있습니다.

다른 값 반환 조건

ECMA-262 3rd Edition 사양에 설명된 대로 [[Construct]] 내부 속성(7단계), 생성자의 반환 값(Result(6))에 따라 반환 여부가 결정됩니다. Result(6)가 객체 유형이 아닌 경우 이 대신 반환됩니다. 이 조건은 생성자의 올바른 실행에 매우 중요합니다.

다음 생성자를 고려하세요.

function Foo() {
  return 10; // Returning a non-object primitive
}

var foo = new Foo();

이 예에서는 10은 객체가 아닌 기본 요소이므로 Foo() 생성자의 결과로 반환됩니다. 따라서 foo에는 기본 값 10이 할당되고 foo는 기본 유형이므로 (new Foo() Foo 인스턴스)는 false로 평가됩니다.

요약

요약하자면, 생성자의 반환 값(Result(6))이 Object 유형이 아닌 경우에만 생성자는 이 이외의 값을 반환할 수 있습니다. 이 조건을 사용하면 객체가 아닌 값으로 객체를 생성하거나 다른 생성자에게 제어권을 전달할 수 있습니다.

위 내용은 JavaScript 생성자가 'this'가 아닌 다른 것을 반환할 수 있는 경우는 언제입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.