美文网首页
闭包closure

闭包closure

作者: Alex灌汤猫 | 来源:发表于2018-07-03 17:24 被阅读0次

    闭包是指有权访问另一个函数作用域中的变量的函数。”

                                          ——《JavaScript高级程序设计》

    function foo() { // 闭包的另一种解释:带有数据的函数

        var a = 'test';

        function bar() {

            console.log(a);

        }

        bar();

    }

    foo();

    改造后(去掉控制台输出)

    function foo() {

        var a = 'test';

        function bar() {

            return a;

        }

        return bar;

    }

    var bar = foo();

    bar(); // 可以通过foo访问到变量a

    常见闭包,

    例如:

    function wait(message) {

        setTimeout(function() {

            console.log(message);

        }, 1000);

    }

    wait('hello, closure');

    (function() {

        var doc = document;

        var util = {

            byId: function(id) {

                return doc.getElementById(id);

            };

        };

        window.jQuery = util;

    })();

    jQuery.byId('hh'); // jQuery代码组织方式

    相关文章

      网友评论

          本文标题:闭包closure

          本文链接:https://www.haomeiwen.com/subject/oqfjuftx.html