【问题标题】:JavaScript namespace pattern (similiar to properties of objects)JavaScript 命名空间模式(类似于对象的属性)
【发布时间】:2011-08-12 10:49:11
【问题描述】:

这种模式的目的是什么?

var ns=function(){
  //do some stuff
}

ns.test=function(){
  //do another stuff
}

我看到了类似的代码,但我不明白这种模式的优点。

这似乎也类似于对象的属性。

这种模式有时也与闭包一起使用,似乎 jquery 使用它,但不确定。

谢谢!

【问题讨论】:

    标签: javascript namespaces design-patterns


    【解决方案1】:

    一方面,它确保您的变量和函数名称不会与可能包含的其他脚本中的名称发生冲突(例如广告、分析、没有命名空间的库等)。

    【讨论】:

    • 所以这两个函数在技术上不相关?
    • 嗯,它的工作方式是 ns 是一个函数(也是一个对象,因为函数在 Javascript 中是一等的),它关闭了其他属性,例如 ns.test,这也是恰好是一个函数。所以函数test属于对象ns。
    【解决方案2】:

    出现这种模式是因为在 JavaScript 中,函数是具有自己的属性和方法的一流对象。这允许函数自己执行,但也可以模仿其他语言的东西。这允许你做一些非常强大的事情,比如模仿静态类、记忆、命名空间等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-12
      • 2015-04-09
      • 2021-11-14
      • 2018-09-03
      • 2020-10-01
      • 2013-09-29
      • 2017-11-30
      • 2016-06-28
      相关资源
      最近更新 更多