js 闭包和this实例

来源:互联网 发布:百度统计安装淘宝店铺 编辑:程序博客网 时间:2024/05/18 20:05

做的闭包和this的几个测试实例:

1.

var x = 2;function aa(){     function tt(){x=1;alert('this.x='+this.x+';x='+x);};return tt();   }   aa();//this.x=1;x=1

2.   

var x=2;var aa={x:1,bb:function(){return function(){return 'this.x='+this.x+';x='+x;};} } alert(aa.bb()());//this.x=2;x=2

3.  

var x=2;var aa={x:1,bb:function(){ var ss=this;return function(){return 'this.x='+ss.x+';x='+x;};} } alert(aa.bb()());//this.x=1;x=2

4.
    var x=2;var aa={x:1,bb:function(){ x=3;var ss=this;return function(){return 'this.x='+ss.x+';x='+x;};} } alert(aa.bb()());//this.x=1;x=3

5. a     
 var x=2;var bb=function(){x=10;return function(){x++;return 'x='+x;};    }var exam=bb();document.writeln('exam:'+exam()+exam()+exam()+';<br/>');var exam2=bb();document.writeln('exam2:'+exam2()+exam2()+exam2()+';<br/>');

value:exam:x=11 x=12 x=13;

    exam2:x=11 x=12 x=13;

5.b   

var x=2;var bb=function(){x=10;return function(){x++;return 'x='+x;};     }var exam=bb();var exam2=bb();document.writeln('exam:'+exam()+exam()+exam()+';<br/>');document.writeln('exam2:'+exam2()+exam2()+exam2()+';<br/>');

value:exam:x=11 x=12 x=13;
    exam2:x=14 x=15 x=16;注意和5.a的区别

原创粉丝点击