質問するログイン新規登録

回答編集履歴

1

編集

2019/09/14 08:03

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37676

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`の危険性は主に、意図しないコードが混入することですから、外部入力が文字列に挿入されなければ「めちゃめちゃヤバい」という程ではなく、「ちょっとドキドキ」程度のリスクではないかな、と個人的には思います。