【发布时间】:2011-06-23 03:55:44
【问题描述】:
我同意使用命名空间对于 JavaScript 库来说是必不可少的,但是那些驻留在 HTML 文件中的 script 标记中的函数呢?基本上,这些是永远不会与任何其他页面共享的“本地”功能。你们还为那些使用命名空间吗?如果是这样,您是否使用与共享自定义库相同的命名空间?
【问题讨论】:
标签: javascript namespaces
我同意使用命名空间对于 JavaScript 库来说是必不可少的,但是那些驻留在 HTML 文件中的 script 标记中的函数呢?基本上,这些是永远不会与任何其他页面共享的“本地”功能。你们还为那些使用命名空间吗?如果是这样,您是否使用与共享自定义库相同的命名空间?
【问题讨论】:
标签: javascript namespaces
我想说,本地命名空间可以帮助防止与 3rd 方 JavaScript 库发生任何可能的冲突,但这不是必须的。
【讨论】:
您不需要命名空间,因为正如您所说,没有潜在的命名冲突。
唯一的潜在冲突是如果您要导入一个不使用命名空间的库,并且它会引入一个与您放置在脚本文件中的名称冲突的变量。但是,如果您在所有库中都遵循命名空间的做法,那就没关系了。
【讨论】:
首先。在 HTML 中放置 javascript 不是您应该做的事情。 Javascript 应该放在单独的文件中。如果您使用加载器,例如 head.js 或类似的,则明显例外。
我个人认为不需要命名本地脚本。我写的一个脚本从未与我使用过的任何插件发生冲突。
【讨论】:
虽然这可能不是必须的,但确实没有理由不给它们命名。它只能帮助预防问题。
这里有一篇关于 Script Junkie 的好文章,介绍了不同的命名空间方法: http://msdn.microsoft.com/en-us/scriptjunkie/gg578608.aspx
【讨论】:
它必须取决于脚本嵌入的 html 来自何处。如果它在代码控制本地脚本的上下文中会知道其他脚本在做什么,那么我认为不需要命名空间。
另一方面,如果脚本将在 CMS 之类的上下文中运行,那么可能会有各种服务器端插件发出本地 javascript,而客户端编码器不一定了解代码的复杂性。即使在那里,如果该代码都是命名空间的,那么你应该没问题。不小心忘记了一个 var 关键字可能会破坏命名空间。
总而言之,命名空间不会伤害任何东西,也没有那么难。当 javascript 不与 html 混合在一起时,维护和思考 javascript 会容易得多。
【讨论】: