"this" 참조를 우회하는 생성자의 반환 값
new 키워드를 사용하여 생성자를 호출할 때 기본 동작은 새로 생성된 개체("this"라고 함)를 반환하는 생성자입니다. 그러나 생성자가 다른 값을 반환하여 새로 생성된 객체에 "this"를 할당하는 것을 효과적으로 방지할 수 있는 특정 상황이 있습니다.
ECMAScript 사양에 따르면 [[Construct]]의 8단계 내부 속성은 다음과 같이 반환 동작을 정의합니다.
생성자 함수(Result(6))에서 반환된 값의 유형이 객체가 아닌 경우:
- The value returned by the constructor will be returned instead of "`this`".
따라서 반환하려면 생성자에서 "this" 이외의 값:
예:
function Foo() { return { name: "sample" }; } var foo = new Foo(); console.log(foo instanceof Foo); // false
이 경우 Foo 생성자는 Foo 생성자의 인스턴스가 아닌 객체를 반환하며(new Foo() Foo 인스턴스)는 false로 평가됩니다.
위 내용은 생성자가 'this' 이외의 값을 반환할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!