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

JavaScript Encapsulation ด้วย Anonymous Functions

OOP languages ให้ data hiding ด้วย private fields ซ่อน internal ของ classes ใน JS ไม่มี built-in support สำหรับ encapsulation

Anonymous functions ให้ encapsulation ใน JS มาดูตัวอย่าง

ตัวอย่าง

const HIDDEN_CONST = 100; function fnWeWantToHide(x, y) {    return (x + y) * HIDDEN_CONST } console.log(fnWeWantToHide(1, 2))

เขียนแบบนี้ใน global scope จะ pollute namespace ด้วยชื่อเหล่านี้ แทนที่จะทำแบบนั้น ให้ wrap ใน IIFE (Immediately Invoked Function Expression)

ตัวอย่าง

(() => { const HIDDEN_CONST = 100; function fnWeWantToHide(x, y) {    return (x + y) * HIDDEN_CONST } console.log(fnWeWantToHide(1, 2)) })()

ตอนนี้ variables ซ่อนอยู่ใน functional expression แต่อยู่ใน global namespace แล้ว