ホームページ >ウェブフロントエンド >jsチュートリアル >リック・アンド・モーティとクロージャーズ:これらの共通点は何ですか?
それで、元気ですか?そうだといい!
私は Leetcode でいくつかのプログラミングの問題を解決しようとしていたのですが、課題の 1 つで、多くの人が理解するのが難しいプログラミングにおける非常に重要な概念に遭遇しました。
そこで私は、JavaScript で クロージャがどのように機能するかを可能な限り最善の方法で説明するためにここに書くことにしました。一緒に来てください!
私は「Counter」と呼ばれる課題に取り組んでいました。そこでは、最初に整数 n を返し、後続の呼び出しごとに前の値よりも 1 単位多い値を返すカウンター関数を作成する必要がありました。例:
この問題では、他の関数を返す関数を使用できることなど、いくつかのヒントが得られます。
これは、クロージャの概念です。そこでヒントに従い、このルートに進みました。私が思いついた解決策は次のとおりです:
var createCounter = function (n) { let contador = n; return function () { resultado = contador; contador++ return resultado; }; };
このコードは、ローカル変数 (この場合はカウンター) を保存および操作できる別の関数 (クロージャ) を返す createCounter という関数を定義します。
この最後のステップでは、クロージャの真の力を理解します。クロージャとは、関数が外部変数にアクセスでき、呼び出し間の状態を維持する別の関数を返すことです。これは、関数内に情報を保存して後でアクセスできる小さな「隠れ」を持っているようなものです。
『リック・アンド・モーティ』シリーズは、次元間旅行や他の文明を題材にしており、人類の実存に関する多くの疑問を批判し、考察を提案しています。
シリーズをご存じない方のために、簡単な概要を以下に示します。この作品の主人公であるリック・サンチェスは、あらゆる種類のクレイジーなテクノロジーを開発する科学者で、通常は孫のモーティを冒険に連れて行きます。老人の最も有名な発明の 1 つは、現実と次元の間を移動できるようにする次元間ポータルです。詳しくはシリーズを観てみてください(笑)
ニールトン、何を言いたいのですか?
さて、リックがモーティのために特定の次元へのアクセスを可能にする次元間のバックパックを開発したと想像してください。この次元では、リックはいくつかの重要なツールを配置します。モーティはバックパックをどこにでも持ち運べます - 学校に行くときでも、散歩に行くときでも、銀河旅行に行くときでも - リックから離れていても、そこに保存されているすべてのものにアクセスできます。
一番良かった点は?モーティは、使いたいときにバックパックを開けてツールを取り出すことができ、中にあるものを変更することもできます。また、どこに保存されていても、保存されたものにはアクセスできます。
そして、この例はクロージャとどのように接続されているのでしょうか?
クロージャはプログラミングにおける強力なリソースです。クロージャを使用する主な利点の中で、カプセル化とメモ化に焦点を当てます。値にはクロージャ (内部関数) 経由でのみアクセスできるためカプセル化され、呼び出し間で変数の値を保持できるためメモ化されます。
AI 生成画像: https://designer.microsoft.com/image-creator?scenario=texttoimage
プロンプト: Rick and Morty の Rick が Morty に光る次元ポケット デバイスを手渡している画像を生成します。モーティはポケットから工具やガジェットなどの物体を取り出しており、リックは研究室で何気なくその仕組みを説明しています。ポケットはクロージャーを表しており、リックが立ち去った後でもモーティがアクセスし続けることができる浮遊アイテムが含まれています。
それで、クロージャとは何か、そしてそれがプログラミングにおいてどれほど重要であるか理解できましたか?役に立つものを保管したり、単に別の次元にテレポートしたりするために、モーティのようなバックパックがあればいいのにと思うことがあります (笑)。
コンテンツが気に入ったら、コメントして共有してください!この記事が他の人に役立つと思われる場合は、私に力を与えてください。
また次回お会いしましょう!
以上がリック・アンド・モーティとクロージャーズ:これらの共通点は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。