Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
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
deleteoperator returnstrueif 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.
Advertisements
