2
有人可以解釋爲什麼警報返回「undefined」而不是「hello」?javascript window.onload範圍
window.onload = function() {
var a = 'hello';
alert(window.a);
}
有人可以解釋爲什麼警報返回「undefined」而不是「hello」?javascript window.onload範圍
window.onload = function() {
var a = 'hello';
alert(window.a);
}
「命名變量是用var語句定義的,當在函數內部使用時,var定義具有函數範圍的變量。 - (source)
可訪問全球範圍內,特別是使a
的window
對象的成員,改變你的代碼是這樣的:
var a; // defined in the global scope
window.onload = function() {
a = 'hello'; // initialized
alert(window.a);
}
或者這樣:
var b = 'world'; //defined and initialized in the global scope
window.onload = function() {
alert(window.b);
}
變量'a'在您的上下文中不是窗口的一部分。
a的作用域爲您分配給onload的匿名函數。
你可以添加一個作爲窗口中的一員,如果你想:
window.onload = function() {
window.a = 'hello';
alert(window.a);
}
,但我建議你不要這樣做。