JavaScript中的命名空間

什麼是命名空間?

名稱間隔是在單個總括術語下包裝一組實體,變量,函數,對象的行為。

JavaScript有多種實現方法,查看示例將使該概念更易於理解。

創建名稱空間的最簡單方法是創建對象文字:

const car = {
  start: () => {
    console.log('start')
  },
  stop: () => {
    console.log('stop')
  }
}

這樣,開始和停止在下面命名carcar.start()car.stop()

他們不是污染全局對象

為什麼這很重要?一個很好的理由是,沒有任何東西可以乾擾他們。

通過在創建對像後將變量分配給對象,該方法也可以工作:

const car = {}

car.start = () => { console.log(‘start’) }

car.stop = () => { console.log(‘stop’) }

但是由於它們的存在,仍然可以從外部訪問它們。car對象參考。

完全從外部隱藏代碼的最佳方法是將其包裝到一個塊中,這是包裝在大括號中的代碼的一部分,例如if或者for塊,但也是這樣形成的獨立塊:

{
  const start = () => {
    console.log('start')
  }

const stop = () => { console.log(‘stop’) } }

現在,在塊外無法訪問這兩個功能。

但是您需要始終使用let或者const,它們是塊範圍的。

使用var而是會將其“洩漏”到塊外。

要解決此問題,可以使用函數,這是“舊的”預let / const方式:

(function() {
  var start = () => {
    console.log('start')
  }

const stop = () => { console.log(‘stop’) } })()

現在startstop都無法從外部訪問,即使start分配給定義為var

免費下載我的JavaScript初學者手冊


更多js教程: