是一个初学者问题,但在 stackoverflow 上找不到任何实际解决这个问题的地方,所以任何帮助将不胜感激。我只想定义一个私有变量,然后将其返回到全局范围。
在此示例中,我可以在刷新页面后在 JS 控制台中访问 x - 但脚本在正文加载之前运行(源位于 head 标签的末尾),并且我无法创建与正文内容相关的元素,因为它们尚未加载:
var x = 5;
window.onload = function() {
var y = 10;
}
我无法访问变量 y,大概是因为它是一个私有变量,在全局范围内不可用(我在这里真的正确吗?使用返回失败。我只是希望能够从正文中创建变量,但我不能,因为脚本没有及时加载。
如何实现这一点?我实际上无法解决这个大概简单的问题。感谢您在这里的任何帮助。
控制台中需要变量时,我使用的一种简单方法是将它们分配给window
,如下所示:
window.y = y;
然后在您的控制台中,y
和window.y
将是该变量:)
在全局范围内声明y
并在 onload 函数中初始化它。
var x = 5;
var y;
window.onload = function() {
y = 10;
}
你显然不能像这样在 window.onload 函数之外访问 y,因为当你检查 y 是什么时,窗口还没有加载。
var x = 5;
window.onload = function() {
var y = 10;
}
console.log(y)
假设你不是这个意思,你只是使用 onload 作为函数的示例,你可以使用 window.y
作为var y
的替代品,它将在窗口中是全局的,所以你可以在函数之外使用它。
var x = 5;
function define_y() {
window.y = 10;
}
window.onload = function() {
define_y();
console.log(y);
}
您可以创建一个全局命名空间,并在以后向其添加属性。
var namespace = Object.create(null); // empty object without prototypes
window.onload = function() {
namespace.y = 10;
}