Diğerleri açıkladı undefined
. undefined
herhangi bir değere yeniden tanımlanabilen global bir değişken gibidir. Bu teknik, eğer birisi bir undefined = 10
yerlerde , 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? window
Nesnenin 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, window
değ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 window
yerel 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.