(@_@;)我是程序猿,我编程,我快乐,知识改变命运,技术成就梦想   oh yeah!合作VX "w6668263" 联系Email:ye583025823@126.com

JavaScript 闭包(个人理解)

当function里嵌套function时,内部的function可以访问外部function里的变量。但这不是闭包
    function foo(x) {
        var tmp = 3;

        function bar(y) {
            alert(x + y + (++tmp));
        }

        bar(10);
    }
    foo(2);
里面的bar()我们可以理解位私有方法 只可以在内部访问自己的变量。

OK everybody come here JavaScript闭包示例如下:
function func1(x) {

        var tmp = 3;
        return function (y) {
            console.log(x + y + (++tmp));
        }
    }

    var func2 = func1(2);


    console.log(typeof func2);

    func2(10);

我们看到func1 返回值是一个function

那么 func2其实就是一个方法的名称了,那么就可以执行了。这就是闭包,func1在执行完毕了内部的return function并不会释放掉。可以在变量接收到return的function 这个function可以继续执行并且访问内部的变量。

 

 

这是我个人的理解。欢迎大家加入QQ群讨论。

 

技术交流QQ群:15129679

 

 

posted on 2017-03-24 09:35  一个草率的龙果果  阅读(239)  评论(0编辑  收藏  举报

导航