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

ความแตกต่างระหว่าง Object.seal() และ Object.freeze() ใน JavaScript

ความแตกต่างคือ Object.seal() อนุญาตให้เปลี่ยนค่า existing properties ได้ แต่ Object.freeze() ไม่อนุญาตให้เปลี่ยนแปลงอะไรเลย Object.freeze() ทำให้ object immune ต่อการเปลี่ยนแปลงใดๆ

Object.seal()

Object.seal() ป้องกันการลบ existing property แต่ ไม่ป้องกัน การเปลี่ยนค่า existing properties

ตัวอย่าง

<html> <body> <script> 
    var object1 = { prop1: 1 }; 
    Object.seal(object1); 
    object1.prop1 = 2; // ค่าเปลี่ยนได้ 
    delete object1.prop1; // ลบไม่ได้ 
    document.write(object1.prop1); // แสดง 2 
</script> </body> </html>

ผลลัพธ์

2

Object.freeze()

นอกจากฟังก์ชันของ Object.seal() แล้ว Object.freeze() ยังไม่อนุญาตให้เปลี่ยนค่า existing properties แม้เล็กน้อย

ตัวอย่าง

<html> <body> <script> 
    var object1 = { prop1: 1 }; 
    Object.freeze(object1); 
    object1.prop1 = 2; // พยายามเปลี่ยนค่า 
    delete object1.prop1; // พยายามลบ 
    document.write(object1.prop1); // ยังคงเป็น 1 
</script> </body> </html>

ผลลัพธ์

1