[英]javascript window.onload scope
有人可以解釋為什么警報返回“未定義”而不是“你好”?
window.onload = function() {
var a = 'hello';
alert(window.a);
}
變量'a'不是您上下文中窗口的一部分。
a的作用域是您分配給onload的匿名函數。
如果你願意,你可以添加一個窗口成員:
window.onload = function() {
window.a = 'hello';
alert(window.a);
}
但我建議不要這樣做。
“命名變量是用var語句定義的。當在函數內部使用時,var定義帶有函數范圍的變量。” - ( 來源 )
可訪問全球范圍內,特別是使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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.