In JavaScript, the new.target property is a meta-property that can be used to determine whether a function was called with the new keyword. It returns a reference to the constructor function that was invoked with the new keyword, or undefined if the function was not called with new.
function MyClass() {
if (new.target) {
console.log('MyClass was called with new');
} else {
console.log('MyClass was not called with new');
}
}
new MyClass(); // MyClass was called with new
MyClass(); // MyClass was not called with new
new.target can be useful for implementing custom constructor functions, where you want to ensure that the function is always called with new, or for creating abstract base classes that cannot be instantiated directly.
function MyClass() {
if (!new.target) {
throw new Error('MyClass must be called with new');
}
}
Top comments (0)