La pseudo propiedad new.target nos permite detectar si una función o constructor se llama con la ayuda del operador new o no.
Sintaxis:
new.target
El siguiente ejemplo demuestra la propiedad meta.
Ejemplo 1: En este ejemplo, la función se llama sin el operador new.
HTML
<!DOCTYPE HTML> <html> <body style="text-align:center;"> <h1 style="color:green;"> GeeksForGeeks </h1> <p> JavaScript | new.target metaKey property </p> <button onclick="Geeks();"> click here </button> <p id="GFG_DOWN"></p> <script> var el_down = document .getElementById("GFG_DOWN"); function Fun() { if (!new.target) { throw 'Fun() is called without new operator'; } } function Geeks(event) { try { Fun(); } catch (e) { el_down.innerHTML = e; } } </script> </body> </html>
Producción:
Ejemplo 2: En este ejemplo, la función se llama con el operador new.
HTML
<!DOCTYPE HTML> <html> <body style="text-align:center;"> <h1 style="color:green;"> GeeksForGeeks </h1> <p> JavaScript | new.target metaKey property </p> <button onclick="Geeks();"> click here </button> <p id="GFG_DOWN"></p> <script> var el_down = document .getElementById("GFG_DOWN"); class Person { constructor(name) { this.name = name; if (!new.target) { throw 'Function is called without new operator'; } else { throw 'Function is called with new operator'; } } } function Geeks(event) { try { var p = new Person('GFG'); } catch (e) { el_down.innerHTML = e; } } </script> </body> </html>
Producción:
Publicación traducida automáticamente
Artículo escrito por PranchalKatiyar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA