Open In App

JavaScript TypeError – Setting getter-only property “x”

Improve
Improve
Like Article
Like
Save
Share
Report

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


Last Updated : 02 Jun, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads