2012-07-11 8 views

Odpowiedz

3

Punkt kontrolny Chrome DevTools można ustawić dla konkretnej linii, która mieści się w zakresie/kontekście wspomnianej zmiennej. Gdy przeglądarka osiągnie punkt przerwania, będziesz miał dostęp do wszystkich zmiennych/funkcji w jej zasięgu globalnym.

Można również użyć konsoli Chrome i wyprowadzić dowolną zmienną dostępną w ramach bieżącego zakresu. Aby uzyskać więcej informacji na temat Chrome DevTools odwiedzić:

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

+1

Dzięki, ja ustawić punkt przerwania w funkcji, a tym samym mają dostęp do zakresu zmiennej. Jak teraz szukać tej zmiennej o wartości "Fred"? Ta funkcja ma 100 zmiennych lokalnych. – dangerChihuahua007

+0

najedź kursorem na każdą ze zmiennych, wyświetli popup z wartością, do której został przypisany. – xandercoded

+0

Właściwie możesz uzyskać do nich dostęp z debugera Eclipse, jeśli masz najnowszą wersję Chrome: http://code.google.com/p/chromedevtools/wiki/Release_0_3_6#Function_Scope_and_Primitve_Values ​​ Narzędzia do przeglądarki Chrome w przeglądarce powinny wkrótce nadrobić zaległości cecha. – beefeather

0

ręcznie w konsoli w następujący sposób:

console.log(this); 

LUB

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

co jest równoważne:

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

w konsoli patrzeć:

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

7

Musisz dodać skrypt do konsoli, tak aby rzeczywiście można przeprowadzić wyszukiwanie, jak Developer Tools don” t domyślnie pozwala na to. Oto, że funkcja dla Ciebie (Zobacz moją GIST komentarz poniżej na aktualizację):

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 } 
 
}

Skopiuj i wklej to do konsoli, a następnie połączyć je z zakresu, który chcesz wyszukać przez i wartość, którą chcesz wyszukać. Uważaj, aby nie wyszukiwać zbyt dużych obiektów, oczywiście. Jeśli programowanie w kątowe, na przykład, i zgodnie z zasadą „zawsze mają kropkę”, można skanować przez niego z połączenia takich jak:

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

+3

Nawiasem mówiąc, zrobiłem ulepszoną wersję tego skryptu (ponieważ lubię i często go używam, sam) i zamieściłem ją jako istotę: https://gist.github.com/DorkForce/34eb9a1ebf14cc5b0ba7 –