1

JavaScript 中可以在函数之外声明哪些变量?我在理解以下代码时遇到了一些麻烦。

此代码不影响subtitle.

var element = window.document.getElementById("subtitle");
var test = "Changed!";

function check(){
    element.innerHTML = test;
}

但是,如果我element在函数内部移动,则subtitle元素将变为“已更改!”。

var test = "Changed!";

function check()
{
    var element = window.document.getElementById("subtitle");
    element.innerHTML = test;
}

是否有规定window不能将对象分配给var函数外部,代码中是否有错误,或者我只是不理解 JavaScript 变量?

4

1 回答 1

2

全局变量可以包含任何数据类型。第一个显示的代码可能不起作用,因为在您获取 的值时没有加载文档element,而第二个代码正在工作,因为在check()调用时加载了文档。

如果你想使用全局变量,试试这个:

var element;
var test = "Changed!";

window.onload = function() {
    element = window.document.getElementById("subtitle");
    check();
}
于 2012-09-28T00:17:07.247 回答