1. 程式人生 > >jquery10 閉包示例

jquery10 閉包示例

style return class undefine div win fine 函數 向上

o = {
    a:1,
    o:{
        b:2,
        f : function(){
            alert(o.a);//1
            alert(o.b);//undefined   
        }
    }
}
o.o.f();


o = {
    a:7,
    o : {
        a:1,
        o:{
            b:2,
            f : function(){
                alert(o.a);//7
                alert(o.b);//
undefined } } } } o.o.o.f(); o = {//這個o加到window閉包裏面去了 a:7, o : {//這個o沒有 a:1, o:{//這個o沒有 b:2, f : function(){ alert(o.a);//7 alert(o.b);//undefined } } } } o.o.o.f(); f = function
(){ return { a:1, o:{ b:2, f : function(){ alert(o.a);//o is not defined ,說明o不存在 alert(o.b);//o is not defined ,說明o不存在 } } } } f().o.f(); f = function(){ o = {a:7,b:8} return { a:1, o:{ b:
2, f : function(){ alert(o.a);//7 alert(o.b);//8 return的東西不在閉包裏面 } } } } f().o.f(); f = function(){ o= {//這個o加到函數閉包裏面去了 a:1, o:{//這個o沒有 b:2, f : function(){ alert(o.a);//1 alert(o.b);//undefined } } } return o; } f().o.f(); f = function(){ return { a:1, o:{ b:2, f : function(){ o = {a:3,b:4} alert(o.a);//3 alert(o.b);//4 } } } } f().o.f(); f = function(){ o = {a:5,b:6} return function(){ a=1, o={ b:2, f : function(){ alert(o.a);//unudefined 以函數作為閉包層級,一層一層的向上查找,找到了就不找了 alert(o.b);//2 } } return o; } } f()().f(); f = function(){ o = {a:5,b:6} return function(){ a=1, b={ b:2, f : function(){ alert(o.a);//5 alert(o.b);//6 } } return b; } } f()().f();
f = function(){
    
    return  function(){
        o = {a:15,b:16}//加到閉包
        a=1,
        b={//加到閉包
            o:{a:11,b:12},   //沒有加到閉包
            b:2,
            f : function(){
                alert(o.a);//15
                alert(o.b);//16
            }
        }
        return b;
    }
}
f()().f();

jquery10 閉包示例