JavaScript TypeError: configuración de la propiedad de solo captador «x»

Esta propiedad de solo captador de configuración de excepción de JavaScript funciona solo en modo estricto y se produce si el usuario intenta establecer un nuevo valor en una propiedad para la que solo se especifica un captador.

Mensaje:

TypeError: Assignment to read-only properties is 
           not allowed in strict mode (Edge)
TypeError: setting getter-only property "x" (Firefox)
TypeError: Cannot set property "prop" of #<Object> 
           which has only a getter (Chrome)

Tipo de error:

TypeError

Causa del error: el usuario está intentando establecer un nuevo valor para una propiedad para la que solo se ha definido un captador.

Ejemplo 1: En este ejemplo, el método getter se define para el objeto. No se puede acceder directamente a la propiedad.

HTML

<script>
"use strict";
function GFG_Fun() { 
  var temp = null; 
  Object.defineProperty(this, 'temp', { 
    get: function() {
      return temp; 
    }
  });
}
var obj = new GFG_Fun(); 
obj.temp;
obj.temp = 100; // Error here
</script>

Producción:

TypeError: Cannot set property temp of 
#<GFG_Fun> which has only a getter

Ejemplo 2: En este ejemplo, el método getter se define para el objeto ‘Persona’. No se puede acceder directamente a la propiedad ‘Edad’.

HTML

<script>
"use strict";
function Person(ageP) { 
  var age = ageP; 
  Object.defineProperty(this, 'age', { 
    get: function() {
      return age; 
    }
  });
}
var p = new Person(22);
p.age = 30;  // TypeError
</script>

Producción:

TypeError: Cannot set property age of 
#<Person> which has only a getter

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 *