Почему этот ответ до сих пор набирает голоса?
За Ответ Микаэля Майера , это больше не проблема, и мой ответ устарел (go()
теперь возвращает 30
после смешивания с консолью). Это было исправлено в июле 2013 года, согласно сообщению об ошибке , указанному выше в комментарии gabrielmaldi . Это тревожит меня тем, что я все еще получаю голоса "за" - заставляет меня думать, что пользователь не понимает ни вопрос, ни мой ответ.
Я оставлю здесь свой первоначальный ответ по историческим причинам, но поднимите голос Ответ Микаэля вместо .
Хитрость в том, что вы не можете изменить локальную переменную напрямую, но вы можете изменить свойства объекта. Вы также можете изменить значение глобальной переменной:
var g_n = 0;
function go()
{
var n = 0;
var o = { n: 0 };
return g_n + n + o.n; // breakpoint here
}
Консоль
> g_n = 10
10
> g_n
10
> n = 10
10
> n
0
> o.n = 10
10
> o.n
10
Проверьте результат go()
после установки точки останова и выполнения этих вызовов в консоли, и вы увидите, что результатом будет 20, а не 0 (но, к сожалению, не 30).