【问题标题】:Is a namespace a must for local JavaScript functions?命名空间是本地 JavaScript 函数必须的吗?
【发布时间】:2011-06-23 03:55:44
【问题描述】:

我同意使用命名空间对于 JavaScript 库来说是必不可少的,但是那些驻留在 HTML 文件中的 script 标记中的函数呢?基本上,这些是永远不会与任何其他页面共享的“本地”功能。你们还为那些使用命名空间吗?如果是这样,您是否使用与共享自定义库相同的命名空间?

【问题讨论】:

    标签: javascript namespaces


    【解决方案1】:

    我想说,本地命名空间可以帮助防止与 3rd 方 JavaScript 库发生任何可能的冲突,但这不是必须的。

    【讨论】:

      【解决方案2】:

      您不需要命名空间,因为正如您所说,没有潜在的命名冲突。

      唯一的潜在冲突是如果您要导入一个使用命名空间的库,并且它会引入一个与您放置在脚本文件中的名称冲突的变量。但是,如果您在所有库中都遵循命名空间的做法,那就没关系了。

      【讨论】:

        【解决方案3】:

        首先。在 HTML 中放置 javascript 不是您应该做的事情。 Javascript 应该放在单独的文件中。如果您使用加载器,例如 head.js 或类似的,则明显例外。

        我个人认为不需要命名本地脚本。我写的一个脚本从未与我使用过的任何插件发生冲突。

        【讨论】:

        • 关于将所有 JavaScript 代码放在 .js 文件中,这不是意味着几乎每个独立的 HTML 文件都会有自己的 .js 文件吗?这不会是一个维护问题吗?
        • @Tom Tucker - 通常,您将所有脚本放在一个或两个大文件中。即使它不适用于它加载的每个页面,它也只会下​​载一次。
        • 是的,@aaronasterling 是正确的。它实际上使维护更容易。您没有每个页面的单独文件。您拥有的是所有页面都使用的一两个文件。您在那里编写功能,html 在加载时使用它们。你应该看看articles.sitepoint.com/article/simply-javascript
        【解决方案4】:

        虽然这可能不是必须的,但确实没有理由不给它们命名。它只能帮助预防问题。

        这里有一篇关于 Script Junkie 的好文章,介绍了不同的命名空间方法: http://msdn.microsoft.com/en-us/scriptjunkie/gg578608.aspx

        【讨论】:

          【解决方案5】:

          它必须取决于脚本嵌入的 html 来自何处。如果它在代码控制本地脚本的上下文中会知道其他脚本在做什么,那么我认为不需要命名空间。

          另一方面,如果脚本将在 CMS 之类的上下文中运行,那么可能会有各种服务器端插件发出本地 javascript,而客户端编码器不一定了解代码的复杂性。即使在那里,如果该代码都是命名空间的,那么你应该没问题。不小心忘记了一个 var 关键字可能会破坏命名空间。

          总而言之,命名空间不会伤害任何东西,也没有那么难。当 javascript 不与 html 混合在一起时,维护和思考 javascript 会容易得多。

          【讨论】:

            猜你喜欢
            • 2015-02-21
            • 2012-11-16
            • 2017-07-19
            • 2018-08-12
            • 1970-01-01
            • 2016-07-10
            • 2019-10-18
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多