以下のようにnew演算子から関数fn1を作り実行するのと、関数宣言から実行するのでは結果が異なりました。
私としては、それぞれの関数は変数cの参照を維持した状態で変数fに代入されると思ったのですが、newした場合は何故ローカルスコープの変数cを参照していないのでしょうか?
js
1let c = 0; 2 3function fn() { 4 let c = 1; 5 // new演算子で関数作成 6 const fn1 = new Function("a", "b", "return a * b * c"); 7 // 関数宣言 8 // function fn1(a, b) { 9 // return a * b * c; 10 // } 11 return fn1; 12} 13 14const f = fn(); 15 16const result = f(1, 2); 17 18console.log(result);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/04 14:02