ความแตกต่างระหว่าง Object.seal() และ Object.freeze() คืออดีตสามารถอนุญาตให้เปลี่ยนแปลงคุณสมบัติที่มีอยู่ของวัตถุในขณะที่หลังจะไม่อนุญาตให้เปลี่ยนแปลงใด ๆ กับวัตถุ Object.freeze() ทำให้วัตถุ ภูมิคุ้มกัน เป็นอะไรก็ได้ แม้แต่การเปลี่ยนแปลงนาทีก็เปลี่ยนไม่ได้
Object.seal()
Object.seal() เมธอดขัดขวางการลบคุณสมบัติที่มีอยู่แต่ไม่สามารถป้องกันคุณสมบัติที่มีอยู่จากการเปลี่ยนแปลงภายนอกได้
ตัวอย่าง
ในตัวอย่างต่อไปนี้ เนื่องจาก Object.seal() วิธีที่ผู้ใช้กำหนดคุณสมบัติ "prop1" จะไม่ถูกลบแม้จะใช้วิธีลบในขณะที่อัปเดตเฉพาะค่าของคุณสมบัติ "prop1"
<html>
<body>
<script>
var object1 = {
prop1: 1
};
Object.seal(object1);
object1.prop1 = 2; // value got changed
delete object1.prop1;
document.write(object1.prop1); // it gives value as 2 because of seal.
</script>
</body>
</html> ผลลัพธ์
2
Object.freeze()
นอกเหนือจากฟังก์ชันของ Object.seal() , Object.freeze() เมธอดจะไม่ยอมให้เปลี่ยนแปลงคุณสมบัติที่มีอยู่ของอ็อบเจกต์เป็นนาที
ตัวอย่าง
<html>
<body>
<script>
var object1 = {
prop1: 1
};
Object.freeze(object1);
object1.prop1 = 2; // value got updated
delete object1.prop1; // value got deleted
document.write(object1.prop1); // it gives 1 as output despite value updated to 2
</script>
</body>
</html> ผลลัพธ์
1