求指教,哪位高人给说一下闭包的解释,最好有实例

解决方案 »

  1.   

    例子:javascript:
    function x(int t) {
    return function(int t2) {
    return t + t2;
    }
    }var f1 = x(2);//这个f1就是一个闭包例子,它本身内部执有一个t即2的变量。
    f1(3),即调用里面的函数的调用,即返回 5.
      

  2.   

    怎么没有,楼上的没学过java?
      

  3.   

    java中包的范围大呢还是子类的范围大呢?
      

  4.   

    闭包的价值在于可以作为函数对象或者匿名函数,持有上下文数据,作为第一级对象进行传递和保存。闭包广泛用于回调函数、函数式编程中。
    1、让某些对象的生命周期加长。
      让自由变量的生命周期变长,延长至回调函数执行完毕。
    2、闭包共享。
      inal关键字 interface Action
    {
        void Run();
    }public class ShareClosure {    List<Action> list = new ArrayList<Action>();
        
        public void Input()
        {
            for(int i=0;i<10;i++)
            {
                final int copy = i;
                list.add(new Action() {    
                    @Override
                    public void Run() {
                        System.out.println(copy);
                    }
                });
            }
        }
        
        public void Output()
        {
            for(Action a : list){a.Run();}
        }
        
        public static void main(String[] args) {
            ShareClosure sc = new ShareClosure();
            sc.Input();
            sc.Output();    }}
      

  5.   

    thinking  in java 205页,  
    闭包: 是一个可调用的对象,它记录了一些信息,这些信息来自于创建它的作用域。  
    这是闭包的定义   在java中 内部类就是面向对象的闭包,首先它是可调用的对象,它可以以访问外部类的所有字段与方法,并自动持有一个对外部对象的引用,在此作用域中 内部类有权操作所有的成员 包括private。
    感觉这个解释你应该明白~~,我卜可以有一篇将  内部类的, 中间有段是包括 闭包与回调机制,有例子 想深入学习的话你可以去看看。