【发布时间】:2012-08-17 18:00:51
【问题描述】:
我想去掉某个命名空间中的局部变量。
这是我的库的最顶层,我在其中设置了一些本地对象来保存其他对象 - 模型、视图、控制器。
但是有人告诉我有一种方法可以在没有局部变量的情况下将库组织到命名空间。
在post here 中,用户 Raynos 说这可能是组织图书馆的最佳方式。命名空间的局部变量为零。
我怎样才能把本地人一起排除在我的图书馆里?
(function (window, document) {
"use strict";
var Mo = {},
Vi = {},
Co = {},
Su = {};
【问题讨论】:
-
从技术上讲,这些变量不是全局变量,它们是您的自动执行匿名函数的本地变量。你的意思是说这对你的口味来说仍然“过于全球化”吗?
-
Raynos 的回答是关于模块化组织,他确实说您应该拥有“零全局变量”。但是请注意,他的ncore GitHub README 中的两个代码示例都像您一样创建局部变量。你可能把“全球”的概念走得太远了:)
-
这是可能的,因为正如我之前所说,这些变量不是全局的,它们是本地的。如果您绝对想将它们视为全局的,那么您仍然必须在某处存储状态。您可以将所有这些变量组合到一个对象中,但根据您的定义,该对象仍然是“全局的”。
-
@HiroProtagonist 在使用自调用模式时,您总共引入了零个全局变量。我有一种感觉,您在问如何处理公共或私有属性和方法......
-
@Mathew, Frederic - 很抱歉给您带来了困惑。我已经更新了问题,请阅读(如果你有时间)我在问题中发布的链接作为背景。
标签: javascript