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().

04-19 21:59
查看更多