How to delete a setter using the delete operator in JavaScript?

To delete a setter using the delete operator in JavaScript, you use the delete keyword followed by the property name. This removes both the getter and setter methods associated with that property.

Syntax

delete obj.propertyName

Example: Deleting a Setter

Here's how to delete a setter along with its corresponding getter:

<html>
<body>
<script>
var department = {
    deptName: "Marketing",
    deptZone: "North", 
    deptID: 101,
    get details() {
        return "Department Details<br>" + "Name: " + this.deptName + " <br>Zone: " + this.deptZone + "<br>ID: " + this.deptID;
    },
    set details(info) {
        var res = info.toString().split(' ');
        this.deptName = res[0] || '';
        this.deptZone = res[1] || '';
        this.deptID = res[2] || '';
    }
};

// Use the setter
department.details = 'Sales South 202';
document.write("<br>After using setter:");
document.write("<br>Department Name: " + department.deptName);
document.write("<br>Department Zone: " + department.deptZone);
document.write("<br>Department ID: " + department.deptID);

// Delete the getter/setter
delete department.details;
document.write("<br><br>After deleting details property:");

// Try to use the setter (will create a regular property)
department.details = 'IT West 303';
document.write("<br>Details property value: " + department.details);
</script>
</body>
</html>

Output

After using setter:
Department Name: Sales
Department Zone: South
Department ID: 202

After deleting details property:
Details property value: IT West 303

Key Points

  • When you delete a property with getter/setter, both are removed
  • After deletion, assigning to that property creates a regular data property
  • The delete operator returns true if the deletion was successful
  • You cannot delete properties that are non-configurable

Checking if Deletion Was Successful

<html>
<body>
<script>
var obj = {
    set value(val) {
        this._value = val;
    },
    get value() {
        return this._value;
    }
};

// Check if property exists
document.write("Has setter/getter: " + ('value' in obj));

// Delete and check result
var deleted = delete obj.value;
document.write("<br>Deletion successful: " + deleted);
document.write("<br>Has setter/getter after deletion: " + ('value' in obj));
</script>
</body>
</html>

Output

Has setter/getter: true
Deletion successful: true
Has setter/getter after deletion: false

Conclusion

The delete operator removes both getter and setter methods when applied to an accessor property. After deletion, the property can be recreated as a regular data property.

Updated on: 2026-03-15T21:41:37+05:30

300 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements