Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

อะไรคือความแตกต่างที่สำคัญระหว่าง Object.freeze() และ const ใน JavaScript?


ความแตกต่างระหว่าง Object.freeze() และ const คืออดีตจะป้องกัน การกลายพันธุ์ ในขณะที่หลังไม่ได้ป้องกันการกลายพันธุ์ เพื่อความเข้าใจที่ดีขึ้น มาคุยกันทีละคน

Const

Const พฤติกรรมเหมือนกับ ให้ . เมื่อตัวแปรใด ๆ ถูกกำหนดโดยใช้ const ไม่สามารถมอบหมายใหม่ . ตัวแปรประกาศโดย Const ถูกจำกัดขอบเขต และไม่ได้กำหนดขอบเขตฟังก์ชัน ตามที่กำหนดโดย var .

ข้อเสียเปรียบหลักกับ const คำสำคัญคือมันไม่ได้ป้องกันวัตถุจากการเปลี่ยนแปลง . คุณสมบัติของวัตถุสามารถเปลี่ยนแปลงได้แม้ว่าวัตถุนั้นจะถูกกำหนดโดยใช้ const . สิ่งนี้เรียกว่าการเปลี่ยนแปลง . มีการวางนัยทั่วไปว่าตัวแปรใด ๆ ที่กำหนดโดยใช้ const ไม่สามารถกำหนดใหม่ได้อีก แต่เมื่อกำหนดวัตถุโดยใช้ const , คุณสมบัติของมันสามารถเปลี่ยนแปลงได้ ในสถานการณ์นั้น เป็นการดีกว่าที่จะหลีกเลี่ยง const เพื่อป้องกัน การกลายพันธุ์ .

ตัวอย่าง

ในตัวอย่างต่อไปนี้ในขั้นต้น มูลค่าของทรัพย์สิน 'ประเทศ' คือ "อินเดีย" แต่ต่อมาค่าจะเปลี่ยนเป็น England แม้ว่าตัวแปรจะถูกกำหนดโดยใช้ const

<html>
<body>
<script>
   const person = {
      "name" : "Suresh",
      "Country" : "India",
      "Designation" : "Mayor"
   }
   person.Country = "England"
   document.write(person.Country);
</script>
</body>
</html>

ผลลัพธ์

England

Object.freeze()

วิธีนี้ทำให้ไม่สามารถเปลี่ยนแปลงได้ . เมื่อวัตถุใดๆ แช่แข็ง คุณสมบัติของมันไม่สามารถเปลี่ยนแปลงได้

ต่อไปนี้แม้มูลค่าทรัพย์สิน "ประเทศ" จะเปลี่ยนจาก "อินเดีย" เป็น "อังกฤษ" เนื่องจาก ไม่เปลี่ยนรูป คุณค่าของ "อินเดีย" ยังคงอยู่

ตัวอย่าง

<html>
<body>
<script>
   const person = {
      "name" : "Suresh",
      "Country" : "India",
      "Designation" : "Mayor"
   }
   Object.freeze(person);
   person.Country = "England"
   document.write(person.Country);
</script>
</body>
</html>

ผลลัพธ์

India