variables - JavaScript 日本語 - JavaScriptのクロージャはどのように動作しますか?

JavaScript クロージャ コールバック / javascript / function / scope / closures

クロージャが構成する概念(例えば、関数や変数など)を知っていても、クロージャそのものを理解していない人に、JavaScriptのクロージャをどのように説明しますか?

28 revs, 21 users 17%



Answer #1

ひとりのお姫様がいて...。

function princess() {

彼女は、冒険に満ちた素晴らしい世界に住んでいました。王子様に出会ったり、ユニコーンに乗って世界を回ったり、ドラゴンと戦ったり、しゃべる動物に出会ったり、その他たくさんのファンタジックなことをしました。

    var adventures = [];

    function princeCharming() { /* ... */ }

    var unicorn = { /* ... */ },
        dragons = [ /* ... */ ],
        squirrel = "Hello!";

    /* ... */

しかし、彼女はいつも、家事や大人の世界の退屈な世界に戻らなければならない。

    return {

そして、お姫様としての最新の素晴らしい冒険をよく話していました。

        story: function() {
            return adventures[adventures.length - 1];
        }
    };
}

しかし、彼らが目にするのは小さな女の子だけ...。

var littleGirl = princess();

...魔法とファンタジーについての物語。

littleGirl.story();