ภาษาโปรแกรมเชิงวัตถุอนุญาตให้ซ่อนข้อมูลโดยใช้ฟิลด์ส่วนตัว พวกเขาใช้สิ่งเหล่านี้เพื่อซ่อนภายในของชั้นเรียน ใน JS ไม่มีการสนับสนุนการสร้างเพื่อซ่อน/ห่อหุ้มการทำงานภายใน
เรามีฟังก์ชันนิรนามที่สามารถให้การห่อหุ้มใน JS แก่คุณได้ เรามาดูตัวอย่างกัน −
ตัวอย่าง
const HIDDEN_CONST = 100; function fnWeWantToHide(x, y) { return (x + y) * HIDDEN_CONST } console.log(fnWeWantToHide(1, 2))
หากเราเขียนโค้ดข้างต้นในที่โล่ง รหัสนี้จะทำลายเนมสเปซส่วนกลางด้วยชื่อเหล่านี้ สิ่งที่เราสามารถทำได้คือห่อสิ่งนี้ใน IIFE (นิพจน์การทำงานที่เรียกใช้ทันที) ตัวอย่างเช่น
ตัวอย่าง
(() => { const HIDDEN_CONST = 100; function fnWeWantToHide(x, y) { return (x + y) * HIDDEN_CONST } console.log(fnWeWantToHide(1, 2)) })()
ตอนนี้ ตัวแปรเหล่านี้ถูกซ่อนอยู่ภายในนิพจน์การทำงาน แต่ฟังก์ชันและ const จะไม่สร้างมลพิษให้กับเนมสเปซส่วนกลางอีกต่อไป