Pourquoi cette réponse obtient-elle encore des votes positifs ?
Par La réponse de Mikaël Mayer ce n'est plus un problème, et ma réponse est obsolète ( go()
retourne maintenant 30
après s'être amusé avec la console). Ce problème a été corrigé en juillet 2013, selon la rapport de bogue lié ci-dessus dans Commentaire de gabrielmaldi . Cela m'inquiète que je reçoive encore des votes positifs, ce qui me fait penser que le votant ne comprend ni la question ni ma réponse.
Je vais laisser ma réponse originale ici pour des raisons historiques, mais votez en hausse La réponse de Mikaël au lieu de .
L'astuce est que vous ne pouvez pas modifier directement une variable locale, mais vous pouvez modifier les propriétés d'un objet. Vous pouvez également modifier la valeur d'une variable globale :
var g_n = 0;
function go()
{
var n = 0;
var o = { n: 0 };
return g_n + n + o.n; // breakpoint here
}
console :
> g_n = 10
10
> g_n
10
> n = 10
10
> n
0
> o.n = 10
10
> o.n
10
Vérifiez le résultat de go()
après avoir défini le point d'arrêt et lancé ces appels dans la console, et vous constaterez que le résultat est 20, plutôt que 0 (mais malheureusement, pas 30).
0 votes
Affichez un code. Où se trouve
modeline
vient ?4 votes
@Emil : Est-ce important ? modeline est une variable globale, j'ai aussi essayé de la modifier en utilisant window.modeline avec les mêmes résultats. Mais cette question est également pertinente pour les variables locales déclarées à l'intérieur d'une fonction.
0 votes
Je le fais fréquemment sans problème. Une fonction extérieure pourrait-elle modifier votre variable ? Essayez de placer un point d'arrêt partout dans le code où elle est modifiée.
4 votes
Je peux confirmer ce comportement. La modification d'une propriété d'un objet JS dans Chrome ne semble pas avoir d'effet sur la valeur réelle de l'objet dans l'interpréteur. Dans Firefox, la même modification fait que le js script s'évalue différemment, comme on pourrait s'y attendre. Une sorte de sécurité exstatique dans Chrome peraps ? Quelqu'un sait-il s'il est possible de la désactiver dans Chrome, afin de pouvoir l'utiliser pour déboguer les js ?
1 votes
Classé a rapport de bogue pour ça.
1 votes
Déjà implémenté dans la V8 : Numéro 2399 Maintenant, les outils de développement de Chromium doivent être mis à jour : Numéro 124206
0 votes
2016/01/19 Chrome latest, trivial code (
var a = 1; debugger; console.log(a);
) ce bug est toujours présent...0 votes
Toujours ce problème dans la version 49.0.2623.110 m