2012-07-11 29 views

cevap

3

Belirli bir satırdaki Chrome DevTools içinde, söz konusu değişkenin kapsamı/bağlamı dahilinde bir kesme noktası ayarlayabilirsiniz. Tarayıcı yürütme ayrılma noktasına ulaştığında, kendi ve global kapsamındaki tüm değişkenlere/işlevlere erişebilirsiniz.

Ayrıca, Chrome konsolunu kullanabilir ve geçerli kapsamda erişilebilen değişkenleri çıktı alabilirsiniz. Krom DevTools'un hakkında daha fazla bilgi için ziyaret edin:

konsolunda el

https://developers.google.com/chrome-developer-tools/

+1

teşekkür, ben set vermedi işlev içinde bir kesme noktası ve böylece değişkenin kapsamına erişim vardır. Şimdi bu değişkeni "Fred" değeriyle nasıl arayabilirim? Bu işlev 100 yerel değişkene sahiptir. – dangerChihuahua007

+0

, değişkenlerin her birinin üzerine geldiğinde, bu, atanan değere sahip bir açılır pencereyi gösterir. – xandercoded

+0

Gerçekte, Chrome'un en yeni sürümüne sahipseniz, bunları Eclipse hata ayıklayıcısından edinebilirsiniz: http://code.google.com/p/chromedevtools/wiki/Release_0_3_6#Function_Scope_and_Primitve_Values ​​ Chrome tarayıcı geliştiricileri yakında bununla yetinmelidir özellik. – beefeather

0

bu şekilde:

console.log(this); 

VEYA eşdeğerdir

console.log({set x(){}}); 

:

console.log(Object.defineProperty({},'x',{get: function(){}})); 
konsolunda

aramak:

get x: function(){} -><function scope> ->

7

aslında bir arama gerçekleştirmek, böylece Geliştirici Araçları don gibi, konsola bir komut dosyası eklemek gerekir Global: Window' t Bunu varsayılan olarak izin ver.

function scanScope(whatToScan, scanValue) { 
 
\t for (var key in whatToScan) { 
 
\t \t if (whatToScan[key] == scanValue) { 
 
\t \t \t console.log(key + ' = ' + whatToScan[key]); \t \t 
 
\t \t } else { 
 
\t \t \t if((typeof whatToScan[key] === "object") && (key !== null)) { 
 
\t \t \t \t scanScope(whatToScan[key], scanValue); 
 
\t \t \t } 
 
\t \t } 
 
\t } 
 
}

kopyala ve konsol içine yapıştırın ve ardından aramak istediğiniz kapsamı ile diyoruz: İşte size o fonksiyonu (bir güncelleme için aşağıdaki benim Gist yoruma bakın) var içinden ve aramak istediğiniz değer. Elbette çok büyük bir nesne aramamaya dikkat edin. Eğer örneğin Eğik içinde programlama ve "her zaman bir nokta bulunur" kuralını takip ediyorsanız, böyle bir çağrı ile içinden tarayabilirsiniz:

scanScope($scope.model, 'Fred');

+3

Tesadüfen, bu betiğin geliştirilmiş bir versiyonunu yaptım (sık kullandığım ve kullandığımdan beri) ve bunu bir gedik olarak yayınladım: https://gist.github.com/DorkForce/34eb9a1ebf14cc5b0ba7 –

İlgili konular