This JavaScript exception setting getter-only property works in strict-mode only and occurs if the user tries to set a new value to a property for which only a getter is specified.
Message:
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)
Error Type:
TypeError
Cause of the Error: The user is trying to set a new value to a property for which only a getter is defined.
Example 1: In this example, the getter method is defined for the object. The property can not be accessed directly.
Javascript
"use strict";function GFG_Fun() { let temp = null; Object.defineProperty(this, 'temp', { get: function () { return temp; } });}let obj = new GFG_Fun();obj.temp;obj.temp = 100; // Error here |
Output:
TypeError: Cannot set property temp of #<GFG_Fun> which has only a getter
Example 2: In this example, the getter method is defined for the object ‘Person’. Property ‘Age’can not be accessed directly.
Javascript
"use strict";function Person(ageP) { let age = ageP; Object.defineProperty(this, 'age', { get: function () { return age; } });}let p = new Person(22);p.age = 30; // TypeError |
Output:
TypeError: Cannot set property age of #<Person> which has only a getter
