ECMAScript 2015 사양에서는 세 번만 언급되었음에도 불구하고 "new.target"은 §12.3.8에 정의된 메타 속성.
"NewTarget"은 현재 함수 환경의 [[NewTarget]] 내부 속성 값을 검색합니다. 이 값은 함수가 생성자로 호출될 때 설정됩니다.
new를 사용하여 함수가 호출되면 new.target은 새 인스턴스를 생성하는 데 사용되는 생성자 함수를 참조합니다. 이를 통해 개발자는 생성자 호출과 일반 함수 호출을 구별할 수 있습니다.
"NewTarget"은 ES6 클래스에서 중요한 역할을 합니다. 클래스 생성자가 new로 호출되면 처음에는 초기화되지 않은 this를 반환합니다. 그러나 super()는 new.target을 인수로 전달하는 동안 상위 생성자를 호출하여 이를 초기화합니다.
이 메커니즘을 사용하면 클래스가 Array 또는 Map과 같은 내장 객체에서 상속받을 수 있습니다. new.target을 상위 생성자에 전달하면 올바른 프로토타입 체인이 설정되어 새 인스턴스가 적절한 프로토타입 객체에서 상속되도록 보장합니다.
다음 클래스 구조를 고려하세요.
class Parent { constructor() { // new.target = Child (from super() call) console.log(new.target); } } class Child extends Parent { constructor() { // new.target = Child (from new call) super(); console.log(this); } } new Child;
이 예에서 new.target은 다음과 같습니다.
출력은 다음과 같습니다.
Child { __proto__: Child.prototype }
이는 new.target을 사용하여 생성자와 일반 함수 호출을 구별하는 방법을 보여줍니다. ES6 클래스에서 상속을 관리합니다.
위 내용은 `new.target`은 어떻게 ES6 클래스에서 상속을 활성화하고 생성자 호출을 차별화합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!