ホームページ > 記事 > ウェブフロントエンド > 「eval」を使用せずに JavaScript でランタイム名付き関数を作成できますか?
eval や型破りなエンジン固有の機能を使用せずに、実行時に決定される名前を持つ JavaScript 関数を作成することは可能ですか? ?はい、これは ECMAScript 2015 (ES6) 以降で可能になりました。
ES6 では、オブジェクト プロパティに割り当てられた匿名関数式は、その名前を取得します。財産。これを計算されたプロパティ名と組み合わせて、新しい Function や eval を使用せずに関数に名前を付けることができます。例:
const dynamicName = "foo" + Math.floor(Math.random() * 1000); const obj = { [dynamicName]() { throw new Error(); }, }; const f = obj[dynamicName];
これにより、「foo###」という名前の関数が作成されます。### は、1 ~ 3 桁のランダムな数字です。
関数の name プロパティには動的な名前が反映されます。上記のコード スニペットの互換性に関する注記は、現在、Edge と Safari ではスタック トレースに名前が表示されないという事実を示しています。
以上が「eval」を使用せずに JavaScript でランタイム名付き関数を作成できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。