JavaScript new.target meta Propiedad

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *