2012-12-28 27 views
6

Olası Çoğalt kullanılan genel değişkenleri nasıl bulunur: My uygulama javascript genel değişkenleri kullanan
Fetching all (javascript) global variables in a pagebenim javascript

. Orada kaç tane olduğunu bulmak için bir yolu var mı? globaller sunulduğunda sizi uyarır bir linter kullanma

Teşekkür Om

+5

En kolay yolu window' nesnesini inceleyin. – Shmiddty

+0

Merak etme, neden global değişkenleri ayarlamak istiyorsun? Bunun gerekli olduğu bir durumu düşünmeye çalışıyorum ama bir tane ile gelemiyorum. – Thomas

+0

@Thomas: Uygulamayı başlangıçta tasarladığımızda, onu kullandık ve şimdi onları yerel olarak kaldırmaya çalışıyorum .. – Ohm

cevap

0

. Ayrıca kodunuzun çalıştırılmasından önce ve sonra window öğelerini karşılaştırabilirsiniz. Böyle pencere elemanı aracılığıyla

1

Bıkmadan:

for(var globe in window){ 
console.log(globe); 
} 
9

Ben birini yaptı.

var GlobalTester = (function(){ 
    var fields = {}; 
    var before = function(w){ 
     for(var field in w){ 
      fields[field] = true; 
     }; 
    }; 

    var after = function(w){ 
     for(var field in w){ 
      if(!fields[field]){ 
       console.log(field + " has been added"); 
      }    
     }; 

    }; 
    return {before: before, after:after}; 
}()); 

GlobalTester.before(window); 

// Run your code here   
window.blar = "sdfg";  

GlobalTester.after(window);   
​ 
​ 

8

tarayıcı geliştiricisi penceresinde bu deneyin konsolda çıktısı verir blar has been added (F12):

Object.keys(window).length 
+3

+1 (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/keys) –

+2

Bu, tüm özelliklerinin bir sayısını döndürecektir. Bu pencere sadece OP'nin ilgilendiği şeyleri değil. –

+0

Kapalı böylece yanıtlayamıyorum; Eklemekte olduğunuz globals'tan herhangi biri varsa ['Object.getOwnPropertyNames (window)'] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames) 'a bakın. sayılabilir olmayabilir. –

-2

pencere nesnesi inceleyin, ancak tüm bilmeniz gerekir Bunu yapmadan önce genel değişken adları, burada bir örnektir:

var myGlobalVars = {"global1":0, "global2":0}; 

function countGlobals() { 
    var count = 0; 
    for (myGlobalVar in myGlobalVars) { 
     if (myGlobalVar in window) { 
      count++; 
     } 
    } 

    return count; 
} 

countGlobals(); 
+2

... Bir dakikanızı ayırın ve bu cevabı düşünün. O zaman devam edin ve silin. – Shmiddty

+0

Bunu düşündükten sonra, endişenizi anlıyorum çünkü sadece globalVars değişkenindeki özelliklerin sayısını sayabilirsiniz. Fakat bu soruyu yorumladığım gibi, özellikler var olabilir ya da olmayabilir, bu yüzden bu cevap haklı. –

+2

Eğer OP tüm global değişkenlerinin isimlerini biliyorsa, neden soruyu soruyorlar? – Shmiddty

İlgili konular