Diğerleri açıkladı undefined. undefinedherhangi bir değere yeniden tanımlanabilen global bir değişken gibidir. Bu teknik, eğer birisi bir undefined = 10yerlerde , bir yerlerde bir şey yazdıysa, tanımlanmamış tüm kontrollerin kırılmasını önlemektir . Asla iletilmeyen bir argümanın undefined, değişkenin değerine bakılmaksızın gerçek olduğu garanti edilir undefined.
Pencereyi geçme nedeni aşağıdaki örnekle gösterilebilir.
(function() {
console.log(window);
...
...
...
var window = 10;
})();
Konsol ne kaydeder? windowNesnenin değeri doğru mu? Yanlış! 10? Yanlış! Günlüğe kaydeder undefined. Javascript yorumlayıcısı (veya JIT derleyicisi) bu şekilde yeniden yazar -
(function() {
var window; //and every other var in this function
console.log(window);
...
...
...
window = 10;
})();
Ancak, windowdeğişkeni bir argüman olarak alırsanız, var ve dolayısıyla sürpriz yoktur.
JQuery'nin bunu yapıp yapmadığını bilmiyorum, ancak windowyerel değişkeni herhangi bir nedenle işlevinizin herhangi bir yerinde yeniden tanımıyorsanız , küresel kapsamdan ödünç almak iyi bir fikirdir.