jquery10 閉包示例
阿新 • • 發佈:2017-05-29
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 閉包示例