ホームページ > ウェブフロントエンド > jsチュートリアル > 「eval」を使用せずに JavaScript でランタイム名付き関数を作成できますか?

「eval」を使用せずに JavaScript でランタイム名付き関数を作成できますか?

Linda Hamilton
リリース: 2024-11-12 18:21:02
オリジナル
956 人が閲覧しました

Can You Create Runtime-Named Functions in JavaScript Without `eval`?

JavaScript で Eval を使用しない実行時名前付き関数

eval や型破りなエンジン固有の機能を使用せずに、実行時に決定される名前を持つ JavaScript 関数を作成することは可能ですか? ?はい、これは ECMAScript 2015 (ES6) 以降で可能になりました。

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 サイトの他の関連記事を参照してください。

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