Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

วิธี reimplement JavaScript delete method

จดจำข้อต่อไปนี้เกี่ยวกับ 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) เอง