検索
ホームページウェブフロントエンドjsチュートリアルjavascript createAdder関数の機能と使い方_javascriptスキル

和文訳
createAdder(x) は関数を返す関数です。 JavaScript では、関数はファーストクラスのオブジェクトです。関数は引数として他の関数に渡したり、関数から返すこともできます。この場合、返される関数自体は、引数を受け取り、それに何かを追加する関数です。

ここに魔法があります。createAdder() によって返される関数はクロージャです。それはそれが作成された環境を「記憶」します。 createAdder に整数 3 を渡すと、引数に 3 を加算する関数が返されます。 4 を渡すと、4 を加算する関数が返されます。上の例の addThree 関数と addFour 関数はこの方法で作成されます。

addLoadEvent 関数をもう一度見てみましょう。ページの読み込み後に実行したいコールバック関数を引数として受け取ります。次の 2 つのケースがあります。最初のケースでは、window.onload にはまだ関数が割り当てられていないため、関数は単にコールバックを window.onload に割り当てます。 2 番目のケースは、クロージャが登場する場合です。window.onload にはすでに何かが割り当てられています。この事前に割り当てられた関数は、最初に oldonload という変数に保存されます。次に、最初に oldonload を実行し、次に新しいコールバック関数を実行する新しい関数が作成されます。この新しい関数は window.onload に割り当てられます。クロージャの魔法の性質のおかげで、クロージャは最初の onload 関数が何であったかを「記憶」します。さらに、addLoadEvent 関数をさまざまな引数で複数回呼び出すことができ、関数のチェーンが構築され、追加したコールバックの数に関係なく、ページの読み込み時にすべてが確実に実行されます。

クロージャは非常に強力な言語機能ですが、慣れるまでに時間がかかる場合があります。ウィキペディアのこの記事では、より詳細な内容が説明されています。

中国語翻訳: より良い可用言があります。大まかに言って違いはありません

createAdder(x) は 1 つの関数であり、1 つの関数を返します。JavaScript では、関数は最初のタイプのオブジェクト: さらに、それらはパラメータおよび関数リターンとして他の関数に渡される可能性があります。この場合、関数リターン自体が 1 つのパラメータを受け取る関数となり、いくつかのパラメータが追加されます。これは魔法です。createAdder によって返される関数() は、1 つのパケットです。つまり、createAdder 整数 3 が渡された場合、関数が返され、そのパラメータに 3 が加算されます。

でわかるように、星光大道は addLoadEvent 機能をもう一度確認できます。これには、一度実行する必要があります。次の 2 つのケースがあります。最初のケースでは、window.onload でいずれかの関数が割り当てられていないため、関数は window.onload で個別に割り当てられます。これは、以前に割り当てられた機能であり、最初に古い onload という名前で保存され、その後、新しい再調整が実行されます。この新しい機能は、window.onload に割り当てられます。神奇な封じ込めの感覚は、非推奨の最初の onload 機能を覚えていてください。

トーク機能は非常に高機能ですが、適用されるまでにある程度の時間がかかる可能性があります。


核心代コード

function createAdder(x) {
return function(y) {
return y x;
}
}
addThree = createAdder(3);
addFour = createAdder(4);
document.write('10 3 は ' addThree(10) '
');
document.write('10 4 は ' addFour(10));
document.write('-10 4 は ' addFour(-10));



演示代:


[Ctrl A 全选注:如く必要取入外部Js必要刷新才能执行]
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptの進化:現在の傾向と将来の見通しJavaScriptの進化:現在の傾向と将来の見通しApr 10, 2025 am 09:33 AM

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

javascriptの分解:それが何をするのか、なぜそれが重要なのかjavascriptの分解:それが何をするのか、なぜそれが重要なのかApr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

pythonまたはjavascriptの方がいいですか?pythonまたはjavascriptの方がいいですか?Apr 06, 2025 am 12:14 AM

Pythonはデータサイエンスや機械学習により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、簡潔な構文とリッチライブラリエコシステムで知られており、データ分析とWeb開発に適しています。 2。JavaScriptは、フロントエンド開発の中核です。 node.jsはサーバー側のプログラミングをサポートしており、フルスタック開発に適しています。

JavaScriptをインストールするにはどうすればよいですか?JavaScriptをインストールするにはどうすればよいですか?Apr 05, 2025 am 12:16 AM

JavaScriptは、最新のブラウザにすでに組み込まれているため、インストールを必要としません。開始するには、テキストエディターとブラウザのみが必要です。 1)ブラウザ環境では、タグを介してHTMLファイルを埋め込んで実行します。 2)node.js環境では、node.jsをダウンロードしてインストールした後、コマンドラインを介してJavaScriptファイルを実行します。

クォーツでタスクが開始される前に通知を送信する方法は?クォーツでタスクが開始される前に通知を送信する方法は?Apr 04, 2025 pm 09:24 PM

Quartzタイマーを使用してタスクをスケジュールする場合、Quartzでタスク通知を事前に送信する方法、タスクの実行時間はCron式によって設定されます。今...

JavaScriptでは、コンストラクターのプロトタイプチェーンで関数のパラメーターを取得する方法は?JavaScriptでは、コンストラクターのプロトタイプチェーンで関数のパラメーターを取得する方法は?Apr 04, 2025 pm 09:21 PM

JavaScriptプログラミング、プロトタイプチェーンの関数パラメーターの理解と操作のJavaScriptのプロトタイプチェーンの関数のパラメーターを取得する方法は、一般的で重要なタスクです...

WeChat MiniプログラムWebViewでVUE.JSダイナミックスタイルの変位が失敗した理由は何ですか?WeChat MiniプログラムWebViewでVUE.JSダイナミックスタイルの変位が失敗した理由は何ですか?Apr 04, 2025 pm 09:18 PM

WeChatアプレットWeb-ViewでVue.jsを使用する動的スタイルの変位障害がvue.jsを使用している理由の分析...

TamperMonkeyで複数のリンクの同時GETリクエストを実装し、順番に戻る結果を決定する方法は?TamperMonkeyで複数のリンクの同時GETリクエストを実装し、順番に戻る結果を決定する方法は?Apr 04, 2025 pm 09:15 PM

複数のリンクの同時ゲットリクエストを作成し、結果を返すために順番に判断する方法は? TamperMonkeyスクリプトでは、複数のチェーンを使用する必要があることがよくあります...

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい