回答編集履歴
1
編集
answer
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
> Function コンストラクタによる関数の生成は、生成コンテキストにクロージャを作りません。つまり常にグローバルスコープで作成します。これを実行すると、 Function コンストラクタの呼び出し元のスコープは入らず、自身のローカル変数とグローバル変数だけにアクセスできます。これは関数式のコードに eval を使うのとは異なっています。
|
|
6
6
|
[Function - JavaScript | MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function#Difference_between_Function_constructor_and_function_declaration)
|
|
7
7
|
|
|
8
|
-
なので、グローバル変数を多用せざるを得なくなりますから、個人的には今回のケースであれば`eval`の方が多少マシかと思います。
|
|
8
|
+
なので、グローバル変数を多用せざるを得なくなりますから、個人的には**今回のケースであれば`eval`の方が多少マシ**かと思います。
|
|
9
9
|
`eval`の危険性は主に、意図しないコードが混入することですから、外部入力が文字列に挿入されなければ「めちゃめちゃヤバい」という程ではなく、「ちょっとドキドキ」程度のリスクではないかな、と個人的には思います。
|