Javascript 创建一个简单的私有变量全局访问body元素

Javascript 创建一个简单的私有变量全局访问body元素,javascript,Javascript,这确实是一个初学者的问题,但在stackoverflow上找不到真正解决这个问题的任何地方,因此非常感谢您的帮助。我只想定义一个私有变量,然后将其返回到全局范围 在本例中,我可以在刷新页面后在JS控制台中访问x,但脚本在加载正文(head标记末尾的source)之前运行,我无法创建与正文内容相关的元素,因为它们尚未加载: var x = 5; window.onload = function() { var y = 10; } 我无法访问变量y,大概是因为它是一个在全局范围内不可用的

这确实是一个初学者的问题,但在stackoverflow上找不到真正解决这个问题的任何地方,因此非常感谢您的帮助。我只想定义一个私有变量,然后将其返回到全局范围

在本例中,我可以在刷新页面后在JS控制台中访问x,但脚本在加载正文(head标记末尾的source)之前运行,我无法创建与正文内容相关的元素,因为它们尚未加载:

var x = 5;

window.onload = function() {
    var y = 10;
}
我无法访问变量y,大概是因为它是一个在全局范围内不可用的私有变量(我在这里是否正确?)。使用return失败。我只是希望能够从主体中创建变量,但我不能,因为脚本没有及时加载


如何做到这一点?我实际上无法解决这个大概很简单的问题。感谢您的帮助。

当我需要控制台中的变量时,我使用的一种简单方法是将它们分配到
窗口,如下所示:

window.y = y;

然后在您的控制台中,
y
以及
window.y
将是该变量:)

当我需要控制台中的变量时,我使用的一种简单方法是将它们分配给
window
,如下所示:

window.y = y;

然后在控制台中,
y
以及
window.y
将是该变量:)

在全局范围内声明
y
,并在onload函数中初始化它

var x = 5;
var y;
window.onload = function() {
    y = 10;
}

在全局范围中声明
y
,并在onload函数中初始化它

var x = 5;
var y;
window.onload = function() {
    y = 10;
}

您可以创建一个全局名称空间,并在以后向其添加属性

var namespace = Object.create(null); // empty object without prototypes

window.onload = function() {
    namespace.y = 10;
}

您可以创建一个全局名称空间,并在以后向其添加属性

var namespace = Object.create(null); // empty object without prototypes

window.onload = function() {
    namespace.y = 10;
}

很明显,您不能在window.onload函数之外访问y,因为在您检查y是什么时,窗口还没有加载

var x=5;
window.onload=函数(){
变量y=10;
}

console.log(y)
您显然无法在窗口外访问y.onload函数,因为在您检查y是什么时窗口尚未加载

var x=5;
window.onload=函数(){
变量y=10;
}

console.log(y)
根据您试图访问y的方式,您无法访问它(因为它是私有的)的假设可能不是全部事实。。。如果您尝试在window.onload函数之外控制台.log(y),它将在定义y之前执行。可能的重复取决于您尝试访问y的方式您认为您无法访问它,因为它是私有的,这可能不是全部事实。。。如果您尝试在window.onload函数外部控制台.log(y),它将在定义y之前执行