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 では現在スタック トレースに名前が表示されないという事実を示しています。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3