JavaScript閉包如何實(shí)現(xiàn)私有變量

小樊
81
2024-10-25 04:12:51

在 JavaScript 中,閉包可以用來(lái)創(chuàng)建私有變量。通過(guò)立即執(zhí)行函數(shù)表達(dá)式(IIFE)結(jié)構(gòu),我們可以實(shí)現(xiàn)這一目標(biāo)。下面是一個(gè)例子:

function createCounter() {
  let count = 0; // 私有變量

  // 返回一個(gè)對(duì)象,包含一個(gè)可以訪問(wèn)和修改count的方法
  return {
    increment: function () {
      count++;
    },
    getCount: function () {
      return count;
    },
  };
}

const counter = createCounter();

counter.increment();
console.log(counter.getCount()); // 輸出 1

counter.increment();
console.log(counter.getCount()); // 輸出 2

在這個(gè)例子中,count 變量被封裝在 createCounter 函數(shù)內(nèi)部,無(wú)法從外部直接訪問(wèn)。我們通過(guò)返回一個(gè)包含 incrementgetCount 方法的對(duì)象,讓外部可以通過(guò)這些方法間接地訪問(wèn)和修改 count 變量。這樣,count 變量就成為了私有變量。

0