¿Por qué esta respuesta sigue recibiendo votos positivos?
Según la respuesta de Mikaël Mayer , esto ya no es un problema, y mi respuesta es obsoleta ( go()
ahora regresa 30
después de jugar con la consola). Esto se corrigió en julio de 2013, según el informe de error vinculado anteriormente en el comentario de gabrielmaldi . Me alarma que sigo recibiendo votos positivos, me hace pensar que el votante no entiende ni la pregunta ni mi respuesta.
Voy a dejar mi respuesta original aquí por razones históricas, pero voy upvote respuesta de Mikaël lugar .
El truco es que no puede cambiar una variable local directamente, pero puede modificar las propiedades de un objeto. También puede modificar el valor de una variable global:
var g_n = 0;
function go()
{
var n = 0;
var o = { n: 0 };
return g_n + n + o.n;
}
consola:
> g_n = 10
10
> g_n
10
> n = 10
10
> n
0
> o.n = 10
10
> o.n
10
Verifique el resultado de go()
después de establecer el punto de interrupción y ejecutar esas llamadas en la consola, y encontrará que el resultado es 20, en lugar de 0 (pero lamentablemente, no 30).
modeline
viene