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