Skip to content
Related Articles

Related Articles

Improve Article
JavaScript TypeError – Setting getter-only property “x”
  • Last Updated : 18 Aug, 2020

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. Property can not be accessed directly.



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>

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.

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>

Output:

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



My Personal Notes arrow_drop_up
Recommended Articles
Page :