簡體   English   中英

javascript window.onload范圍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM