回答編集履歴
1
指摘をいただいたので、より明確な不推奨理由となるよう、文章を修正
answer
CHANGED
@@ -7,9 +7,11 @@
|
|
7
7
|
これはとても便利な仕様かと思います。
|
8
8
|
|
9
9
|
さて、
|
10
|
-
**基本的には使っていい**と思います。
|
10
|
+
~~**基本的には使っていい**と思います。~~
|
11
|
-
ただし、JavaScript
|
11
|
+
~~ただし、~~JavaScriptの性質上、
|
12
|
+
あまり使うことは推奨できないものかと思います。
|
13
|
+
(後述するが、チーム開発や、ライブラリとして公開するのには非常に不適切な仕様)
|
12
|
-
ルートスコープに変数を置くと、非常にスパゲティコードになりやすく、
|
14
|
+
JavaScriptは、ルートスコープに変数を置くと、非常にスパゲティコードになりやすく、
|
13
15
|
あまり推奨されないので、もしかしたら気にしなくいいかもしれませんが、
|
14
16
|
変数を扱う上でその**ルート変数と区別がつきずらい**可能性が非常に高くなるかと思われます。
|
15
17
|
例えば下記の例です。
|
@@ -42,5 +44,7 @@
|
|
42
44
|
もちろんこの時点でスパゲティコードなので、あまりよろしくない例かと思いますが、
|
43
45
|
実際にこの仕様を使うときは、このような現象が起きやすいので、
|
44
46
|
HTMLでid指定している変数名は、js内では使わない、などの**チーム内で厳密にルール化**する必要がでてくるでしょう。
|
47
|
+
また、ライブラリとして公開するにも不適切かと思います。
|
48
|
+
なぜなら、変数として扱っているid名のHTML要素がわからず、ユーザーが定義しようとしている、HTMLや変数と名前が被る可能性が多分にあるからです。
|
45
49
|
|
46
50
|
つまり、個人で開発して、他の誰にも引き継がないようなものであれば、別に気にしなくて使っていいと思うって話です。
|