関数を返す関数を作りたいと思います。Javascriptであらかじめ割り当てられた定数を持つ関数を返す
const f = (value) => {
return (input) => (value <= input);
};
は予想:
f(3).toString();
// "(input) => (3 <= input);"
eval(f(3).toString())(4);
// true
実際:
f(3).toString();
// "(input) => (value <= input);"
eval(f(3).toString())(4);
// Error: input is undefined
は私が事前に割り当てられた動的な定数と関数を生成することができますか?
私はある種のコードジェネレータを作成しています。私は関数を文字列に変換し、some.jsに保存しようとします。私の目標は、 'some.js'のユーザーはf
の引数について知っている必要はありません。
なぜ ' toString'/'eval'?なぜf(3)(4)だけではないのですか? – melpomene
@melpomene私はある種のコードジェネレーターを作っています。 'f(3)'によって返された関数コードを 'some.js'に保存しようとしています。私の目標は、 'some.js 'のユーザーは' f'の引数について、それらを使うときに知る必要がないということです。 – Gloorx
文字列のリテラル部分を3にする必要があるならば、 'f'は文字列を返します。 'f =(val)=> '(input)=>(' + val + '<= input);' ' –