2012-07-11 18 views

Respuesta

3

Puede establecer un punto de interrupción dentro de Chrome DevTools en una línea particular, eso está dentro del alcance/contexto de dicha variable. Cuando la ejecución del navegador llegue al punto de interrupción, tendrá acceso a todas las variables/funciones dentro de su alcance global y.

También podría utilizar la consola de Chrome y generar cualquier variable que esté accesible dentro del alcance actual. Para obtener más información acerca de Chrome DevTools visite:

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

+1

Gracias, me puse un punto de interrupción dentro de la función y así tener acceso al alcance de la variable. ¿Cómo busco ahora esa variable con el valor "Fred"? Esta función tiene 100 variables locales. – dangerChihuahua007

+0

desplace el cursor sobre cada una de las variables, esto mostrará una ventana emergente con el valor asignado. – xandercoded

+0

En realidad, puede acceder a ellos desde el depurador de Eclipse si tiene una versión reciente de Chrome: http://code.google.com/p/chromedevtools/wiki/Release_0_3_6#Function_Scope_and_Primitve_Values ​​ Las herramientas de desarrollo de Chrome en el navegador pronto deberían ponerse al día con este característica. – beefeather

0

manualmente en la consola de la siguiente manera:

console.log(this); 

O

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

lo que equivale a:

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

en la consola mirase;

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

7

Usted tendrá que añadir un script a la consola para que en realidad se puede realizar una búsqueda, como las Herramientas de Desarrollo don' t permite esto por defecto. He aquí que la función para usted (Ver mi comentario Gist a continuación para una actualización):

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

Copia y pega esto en la consola, y luego llamarlo con el alcance que desea buscar a través y el valor que desea buscar. Tenga cuidado de no buscar un objeto demasiado grande, por supuesto. Si está programando en angular, por ejemplo, y siguiendo la regla "siempre tienen un punto", puede escanear a través de él con una llamada como:

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

+3

A propósito, he hecho una versión mejorada de este script (dado que me gusta y lo uso a menudo, yo mismo) y lo escribí como una idea central: https://gist.github.com/DorkForce/34eb9a1ebf14cc5b0ba7 –

Cuestiones relacionadas