首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何干净利落地处理全局变量?

如何干净利落地处理全局变量?
EN

Stack Overflow用户
提问于 2011-02-21 16:47:51
回答 3查看 23K关注 0票数 39

我有一些aspx页面(50+)。我需要在每个页面中声明一个(5-7)个全局变量。一个页面中的变量独立于其他页面,即使其中一些可能是相同的。

目前,我在页面顶部和任何函数的外部声明。

我应该采用不同的方法吗?这种方法有什么副作用吗?

如果完全相同,请让我知道。谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-21 17:28:15

最佳实践是不要弄乱全局作用域。特别是因为其他框架或插件脚本可能会污染或覆盖您的var。

为自己创建一个命名空间

https://www.geeksforgeeks.org/javascript-namespace/

更多信息请点击这里:https://stackoverflow.com/search?q=namespace+javascript+global

使用不同方法设置var的一些示例

代码语言:javascript
复制
myOwnNS = {}; // or window.myOwnNS
myOwnNS.counter = 0;
myOwnNS["page1"] = { "specificForPage1":"This is page 1"}
myOwnNS.page2 = { "specificForPage2":"This is page 2", "pagenumber":2}
myOwnNS.whatPageAmIOn = function { return location.href.substring(location.href.lastIndexOf('page')+4)}
票数 39
EN

Stack Overflow用户

发布于 2011-02-21 17:48:01

正如@mplungjan所说,最佳实践是尽可能避免全局变量。

因为window是全局,所以您可以在任何时间在任何函数中使用window.NAMESPACE ={}声明名称空间;

然后,您可以全局访问命名空间,并在同一函数或另一个函数中将其值设置为属性:

代码语言:javascript
复制
NAMESPACE = { var1:"value", var2:"value" /* etc */ };

如果您可以在脚本文件中完成所有这些操作,而不是直接在页面中完成,那就更好了,但是我猜您可能没有静态脚本中提供的值。

票数 3
EN

Stack Overflow用户

发布于 2011-02-21 16:59:00

一种方法是在“根”级别声明变量,即在任何其他JS代码尝试访问它之前,在任何代码块之外声明它。

您可以使用window.variablename = value;设置全局变量,以便至少在表面上保持整洁。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5063878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档