【发布时间】:2012-09-09 22:05:27
【问题描述】:
【问题讨论】:
标签: javascript
【问题讨论】:
标签: javascript
在全局执行上下文中声明(不在函数范围内):
var x = "hello";
将其声明为全局对象的隐式属性(小心,人们可能会认为您犯了错误并错过了var,这将在严格模式下引发引用错误 ,所以不要使用它):
x = "hello";
将其声明为全局对象的显式属性:
window.x = "hello";
请记住,window 特定于浏览器环境。如果您正在使用节点,则在所有上下文中都可用的全局对象是 global:
global.x = "hello";
【讨论】:
process.x?你的意思是global.x?
process 对象是全局可用的,但它不是全局对象。全局对象为global,相当于在浏览器中使用window。
只需在任何函数之外定义一个变量:
var myGlobalVariable = 42;
不要过度使用全局变量,因为这会使您的代码更难阅读和调试。
【讨论】:
这样
<script>
var myGlobal = 2;
function xyz()
{
//can access myGlobal here
}
</script>
【讨论】:
window.myGlobal = 2; 明确执行此操作。更清楚的是,您是在定义全局内容,而不是在全局范围内意外泄漏。
有一篇关于 Javascript 范围的好文章 here - 基本上外部定义的任何内容都可以在内部访问,但反之则不然。
【讨论】: