zoukankan      html  css  js  c++  java
  • 闭包的学习

    引自 http://stackoverflow.com/questions/111102/how-do-javascript-closures-work

    Once upon a time:

    There was a princess...

    function princess() {

    She lived in a wonderful world full of adventures. She met her Prince Charming, rode around her world on a unicorn, battled dragons, encountered talking animals, and many other fantastical things.

        var adventures = [];
    
        function princeCharming() { /* ... */ }
    
        var unicorn = { /* ... */ },
            dragons = [ /* ... */ ],
            squirrel = "Hello!";

    But she would always have to return back to her dull world of chores and grown-ups.

        return {

    And she would often tell them of her latest amazing adventure as a princess.

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

    But all they would see is a little girl...

    var littleGirl = princess();

    ...telling stories about magic and fantasy.

    littleGirl.story();

    And even though the grown-ups knew of real princesses, they would never believe in the unicorns or dragons because they could never see them. The grown-ups said that they only existed inside the little girl's imagination.

    But we know the real truth; that the little girl with the princess inside...

    ...is really a princess with a little girl inside.

  • 相关阅读:
    Java基础回顾 —内部类
    JAVA设计模式之观察者模式
    Java基础回顾 —注解
    JAVA设计模式之代理模式
    Java基础回顾 —反射机制
    JAVA设计模式之策略模式
    Java基础回顾 —String常量池
    JAVA设计模式之单例模式
    Java基础回顾 —抽象类、接口、多态
    Git的简单应用
  • 原文地址:https://www.cnblogs.com/hhjiang14/p/4513807.html
Copyright © 2011-2022 走看看