評価なしで実行時に決定される名前を持つ関数を作成する
質問:
可能ですかeval や非標準機能を使用せずに純粋な JavaScript で名前付き関数を作成するには、関数名前は実行時に決定されますか?
答え (ES6 のみ):
はい、ES6 以降 (別名「ES2015」) では、匿名関数式を使用してこれが可能です。計算されたオブジェクトのプロパティ名に割り当てられます。
const dynamicName = "foo" + Math.floor(Math.random() * 1000); const obj = { [dynamicName]() { // ... }, }; const f = obj[dynamicName]; console.log("Function's `name` property: " + f.name); // Outputs "foo###", where ### is a random 1-3 digit number
この例では、計算されたプロパティ名を使用します関数のランダムな名前を動的に生成します。関数はオブジェクト プロパティに割り当てられ、その名前には name プロパティを介してアクセスできます。ただし、ブラウザの互換性は異なる場合があり、一部のブラウザではスタック トレースに動的関数名が表示されない場合があることに注意してください。
以上が実行時に決定される名前を持つ名前付き関数を JavaScript で作成できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。