จดจำข้อต่อไปนี้เกี่ยวกับ delete: delete เป็น keyword ใน JavaScript จึงไม่ควรแก้ไข และไม่สามารถใช้ delete กับตัวแปรเดี่ยวได้ ใช้ลบ property ของ object เท่านั้น
คีย์เวิร์ด delete ใช้ลบ property จาก JavaScript object:
ตัวอย่าง
Live Demo
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var cricketer = {
name: "John",
rank: 3,
points: 800
};
delete cricketer.rank;
document.getElementById("demo").innerHTML =
cricketer.name + " has " + cricketer.rank + " rank.";
</script>
</body>
</html>
รายละเอียด delete operator
- ลบ property จาก object — คืนค่า
trueถ้าสำเร็จ (หรือ property ไม่มีอยู่) - ไม่ลบตัวแปร ที่ประกาศด้วย
var,let,const - ไม่ลบ property ที่
configurable: false(strict mode โยน error) - ไม่ลบ property ของ built-in objects ที่ non-configurable
const obj = { a: 1, b: 2 };
delete obj.a; // true - ลบสำเร็จ
console.log(obj); // { b: 2 }
var x = 10;
delete x; // false (non-strict) / SyntaxError (strict) - ไม่ลบตัวแปรได้
// configurable: false
const obj2 = {};
Object.defineProperty(obj2, 'fixed', { value: 1, configurable: false });
delete obj2.fixed; // false (non-strict) / TypeError (strict)
ไม่สามารถ "reimplement" delete ได้
delete เป็น keyword และ operator built-in — ไม่สามารถ override หรือ reimplement ได้ หากต้องการพฤติกรรมคล้ายๆ ให้สร้างฟังก์ชันช่วย (helper function) เอง