回答編集履歴
2
グローバル・ローカルスコープではなく、ブロックスコープであるという内容に変更
answer
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
②がある場合は、
|
|
2
|
-
`obj2`は、ifブロック内限定の
|
|
2
|
+
`obj2`は、ifブロック内スコープ限定の変数となり、そもそも、
|
|
3
|
-
**
|
|
3
|
+
**その外側スコープの`obj2`**に代入が行えなくなるからです。
|
|
4
4
|
|
|
5
5
|
> obj2 = obj1による代入が、最後のobj2に効かないのか?
|
|
6
6
|
|
|
7
7
|
効かないのではなく、**そもそも別物になる**、ってことです。
|
|
8
8
|
|
|
9
9
|
そういった事を考えるならば、
|
|
10
|
-
今回のケースでは特に、**
|
|
10
|
+
今回のケースでは特に、**内側スコープで、その外側スコープの変数と同名の変数は宣言すべきではない**と言えます。
|
|
11
11
|
|
|
12
12
|
今回のように短いコードなら特に問題なくとも、
|
|
13
13
|
規模が大きくなればなるほど、
|
1
別物になることを強調
answer
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
> obj2 = obj1による代入が、最後のobj2に効かないのか?
|
|
6
6
|
|
|
7
|
-
効かないのではなく、そもそも別物になる、ってことです。
|
|
7
|
+
効かないのではなく、**そもそも別物になる**、ってことです。
|
|
8
8
|
|
|
9
9
|
そういった事を考えるならば、
|
|
10
10
|
今回のケースでは特に、**ローカルスコープでグローバルと同名の変数は宣言すべきではない**と言えます。
|