なぜこの答えはまだ賛成を得ているのですか?
パーミカエル・メイヤーの答えは、これはもはや問題ではない、と私の答えは廃止されました(go()
今で返し30
コンソールでいじくる後)。上記のgabrielmaldiのコメントにリンクされているバグレポートによると、これは2013年7月に修正されました。それは私がまだ賛成票を獲得していることを私に警告します-賛成票が質問または私の答えのどちらも理解していないと私に思わせます。
私は歴史的な理由のためにここに私の元の答えを残して、しかしますupvote行くミカエルの答えを代わりに。
秘訣は、ローカル変数を直接変更することはできませんが、オブジェクトのプロパティを変更することはできます。グローバル変数の値を変更することもできます。
var g_n = 0;
function go()
{
var n = 0;
var o = { n: 0 };
return g_n + n + o.n;
}
コンソール:
> g_n = 10
10
> g_n
10
> n = 10
10
> n
0
> o.n = 10
10
> o.n
10
go()
ブレークポイントを設定してコンソールでそれらの呼び出しを実行した後の結果を確認すると、結果は0ではなく20(ただし、残念ながら30ではない)であることがわかります。
modeline
から来たの?