Las herramientas de desarrollo de Chrome son geniales, pero una cosa que no parecen tener (que podría encontrar) es una forma de encontrar la definición de una función de JavaScript. Esto sería muy útil para mí porque estoy trabajando en un sitio que incluye muchos archivos JS externos. Claro que grep resuelve esto, pero en el navegador sería mucho mejor. Quiero decir, el navegador tiene que saber esto, ¿por qué no exponerlo? Lo que esperaba era algo como:
- Seleccione 'Inspeccionar elemento' de la página, que resalta la línea en la pestaña Elementos
- Haga clic derecho en la línea y seleccione 'Ir a la definición de función'
- El script correcto se carga en la pestaña Scripts y salta a la definición de la función
En primer lugar, ¿existe esta funcionalidad y simplemente me la estoy perdiendo?
Y si no es así, supongo que esto vendría de WebKit, pero no pude encontrar nada para las solicitudes de funciones de Developer Tool o el Bugzilla de WebKit .
javascript
google-chrome-devtools
Ryan DuVal
fuente
fuente
Respuestas:
Digamos que estamos buscando una función llamada
foo
:foo\s*=\s*function
(buscafoo = function
con cualquier número de espacios entre esos tres tokens),Otra variante para la definición de funciones es
function\s*foo\s*\(
parafunction foo(
cualquier número de espacios entre esos tres tokens.fuente
foo
. Hay otros. ¿Qué pasa si nuestra función es, por ejemplobar['foo']
? (No hay una buena respuesta a esa pregunta, que yo sepa --- es esencialmente "no escriba código complicado")Esto aterrizó en Chrome el 26-08-2012 No estoy seguro de la versión exacta, lo noté en Chrome 24.
Una captura de pantalla vale más que un millón de palabras:
Estoy inspeccionando un objeto con métodos en la consola. Al hacer clic en "Mostrar definición de función" me lleva al lugar en el código fuente donde se define la función. O simplemente puedo pasar el cursor sobre la
function () {
palabra para ver el cuerpo de la función en una información sobre herramientas. ¡Puedes inspeccionar fácilmente toda la cadena de prototipos de esta manera! CDT definitivamente rock !!!¡Espero que todos lo encuentren útil!
fuente
dir(myFunc)
findDefinition(myFunc)
? AFAIK que aún no existe ...({1:somefunction})
luego haga clic derecho en la función dentro del objeto impreso.Puede imprimir la función evaluando su nombre en la consola, así
esto no funcionará para las funciones integradas, solo se mostrarán en
[native code]
lugar del código fuente.EDITAR : esto implica que la función se ha definido dentro del alcance actual.
fuente
Actualización de 2016 : en la versión 51.0.2704.103 de Chrome
Hay un
Go to member
atajo (listado ensettings > shortcut > Text Editor
). Abra el archivo que contiene su función (en elsources
panel de DevTools) y presione:o en OS X:
Esto permite enumerar y llegar a los miembros del archivo actual.
fuente
Otra forma de navegar a la ubicación de una definición de función sería interrumpir el depurador en algún lugar donde pueda acceder a la función e ingresar el nombre totalmente calificado de las funciones en la consola. Esto imprimirá la definición de la función en la consola y dará un enlace que al hacer clic abre la ubicación del script donde se define la función.
fuente
Los diferentes navegadores hacen esto de manera diferente.
Primero abra la ventana de la consola haciendo clic derecho en la página y seleccionando "Inspeccionar elemento", o presionando F12.
En la consola, escriba ...
Firefox
Cromo
fuente
functionName.toSource()
También funciona en las últimas versiones de Chrome.stop
.en la consola de Chrome:
fuente
undebug(MyFunction)
para eliminar el punto de interrupción nuevamente (después de encontrar la implementación del método)Creo que la forma más rápida de localizar una función global es simplemente:
fuente
En Google Chrome, la herramienta de inspección de elementos puede ver cualquier definición de función de Javascript.
fuente
Si ya está depurando, puede pasar el mouse sobre la función y la información sobre herramientas le permitirá navegar directamente a la definición de la función:
Lectura adicional :
fuente
Tuve un problema similar para encontrar la fuente del método de un objeto. El nombre del objeto era
myTree
y su método eraload
. Puse un punto de interrupción en la línea a la que se llamó el método. Al volver a cargar la página, la ejecución se detuvo en ese punto. Luego, en la consola de DevTools, escribí el objeto junto con el nombre del método, es decir,myTree.load
y presioné Enter. La definición del método se imprimió en la consola:Además, haciendo clic derecho en la definición, puede ir a su definición en el código fuente:
fuente