JavaScript中的命名空间的实例介绍

42 阅读1分钟

什么是命名间距?

命名间距是将一组实体、变量、函数、对象包裹在一个总称下的行为。

JavaScript有各种方法来做到这一点,看到这些例子会使这个概念更容易理解。

创建命名空间的最简单方法是创建一个对象字面。

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

通过这种方式,start和stop被命名为carcar.start()car.stop()

它们并没有污染全局对象

为什么这很重要?一个很好的理由是,没有什么可以干扰它们。

这种方式也是通过在对象创建后给它分配一个变量来实现的。

const car = {}

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

car.stop = () => {
  console.log('stop')
}

但由于car 对象的引用,它们仍然可以从外部访问。

从外部完全隐藏代码的最好方法是将其包裹在一个块中,这是用大括号包裹的一部分代码,就像iffor 块,但也可以像这样形成一个独立的块。

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

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

这两个函数现在在块外是无法访问的。

但你需要注意的是,一定要使用letconst ,它们是块的范围。

如果使用var ,就会把它 "泄露 "到块之外。

为了解决这个问题,你可以使用函数,这是 "旧的",前let/const方式。

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

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

现在,startstop 都不能从外部访问,即使start 被分配给一个用var 定义的变量。