簡體   English   中英

何時在javascript中使用范圍解析?

[英]When to use scope resolution in javascript?

當我設置我使用的onload屬性時

window.onload=initialize_page;

但是,當我使用undefined時,我理解的是一個窗口屬性,我只是使用:

undefined

我如何知道何時調整屬性?

如果我從第一個語句中刪除窗口就可以了。 我想我在這里的代碼中看到了這兩個,但哪種方式是最好的做法?

如果要定義全局變量,建議使用前綴window. ,以防止與具有相同名稱的局部變量沖突。

例如,Rocket(在OP的評論中)建議使用onload=initialize_page; 而不是window.onload = ... 在以下情況下,這將失敗:

function foo() {
    var onload = "on load";
    onload = initialise_page;
    // What? Let's check:
    alert(onload === window.onload); //false
}
foo();

如果遇到變量,並且不知道它是否是全局變量,則可以使用以下代碼來確定它:

alert( 'somevar' in window ); //If true, then in global scope. If false, then not
alert( somevar === window.somevar); // Risky. If somevar is not an object, this
                                    // comparison will also be true. Example:
                                    // var local = 1;window.local=1;
                                    // ^ They're equal by value

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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