「eval()」を使用せずにJavaScriptで動的に名前が付けられた関数を作成できますか?

Linda Hamilton
リリース: 2024-11-11 16:51:03
オリジナル
288 人が閲覧しました

Can You Create Dynamically Named Functions in JavaScript Without Using `eval()`?

Eval を使用しない動的関数の作成

質問: 実行時に決定される名前で関数を作成することは可能ですか? eval() に頼らず、純粋な JavaScript のみを使用しますか?

ECMAScript 2015 の回答:

はい、ES2015 ではソリューションが導入されています。オブジェクト プロパティに割り当てられた匿名関数式は、プロパティ名を関数名として継承するようになりました。これを計算されたプロパティ名と組み合わせることで、動的な名前を持つ関数を作成できます。

例:

const dynamicName = "foo" + Math.floor(Math.random() * 1000);
const obj = {
    [dynamicName]() {
        throw new Error();
    },
};
const f = obj[dynamicName];

console.log("Function's `name` property: " + f.name); // Logs: "foo###" (where ### is 1-3 digits)
ログイン後にコピー

ES2015 では、このメソッドは関数に名前があり、その関数がデバッガーのスタック トレースに表示されます。ただし、Edge と Safari ではスタック トレースに関数名が表示されない場合があるので注意してください。

以上が「eval()」を使用せずにJavaScriptで動的に名前が付けられた関数を作成できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート