JavaScript - 全局命名空间、窗口或什么都没有?

标签 javascript window

我正在使用一些需要全局配置变量的库(例如 Less.js 和 Dojo)。例如:

less = { ... };
dojoConfig = { ... };

这工作正常,但我想知道,我应该在窗口上显式声明这个变量吗?

window.less = { ... };
window.dojoConfig = { ... };

每种方法的优缺点是什么?从实际代码中引用此变量的优缺点是什么(不考虑可能与局部变量的名称冲突):

var somethingNew = dojoConfig.something;

我唯一能想到的是没有窗口的代码更漂亮:)

最佳答案

如果您开始以严格模式 运行代码,您会发现通过排除varwindow 来创建隐式全局变量是非法的。

IMO,明确声明始终是更好的做法。对于全局变量,如果您在全局变量范围内,则为 window.foovar foo

就引用现有的全局变量而言,它就像此时的任何其他变量一样,因此您实际上并不需要 window. 为此目的,尽管如果变量是被同名的局部变量覆盖。

关于JavaScript - 全局命名空间、窗口或什么都没有?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18874692/

相关文章:

javascript - 如何在 javascript 中剪切字符串,使其恰好适合两行并在末尾添加 ...

javascript - AJAX 未从 PHP 脚本返回预期输出

PHP 显示 CMD 命令提示符窗口 (Windows)

javascript - 从子窗口中删除亲子关系

javascript - 覆盖 window.alert 并传递多个参数

android - 我们如何在 Android 中创建窗口框架?

java - 这个警告在 Vaadin : "Ignoring RPC call for disabled connector com.vaadin.ui.Window"? 中意味着什么

javascript - jQuery Image load() 事件返回 false 不起作用?

JavaScript/jQuery 刽子手问题

javascript - 使用 Javascript 添加 HTML?