new.target is a new “magical” value available in all functions, thoughin normal functions it will always be undefined. In any constructor,new.target always points at the constructor that new actuallydirectly invoked.
class Parent { constructor() { if (new.target === Parent) { console.log( "Parent instantiated" ); } else { console.log( "A child instantiated" ); } } } class Child extends Parent {} var a = new Parent(); // Parent instantiated var b = new Child(); // here new.target is undefined // A child instantiated
When the class is extended, it will show undefined in the parent class construcotr().