js函数,闭包的问题
标签
参考链接:http://www.imooc.com/article/3150
//------------------------------------------- var name="window"; var object={ "name":"my object", "fn1":function(){ console.log(name); } } object.fn1(); >>"window" //-------------------------------------------- var name="window"; var object={ "name":"my object", "fn1":function(){ var name="fn1"; console.log(name); } } object.fn1(); >>"fn1" //--------------------------------------------- var name="window"; var object={ "name":"my object", "fn1":function test(){ var name="fn1"; console.log(name); } } object.fn1(); >>"fn1" //---------------------------------------------- var name="window"; var object={ "name":"my object", "fn1":function(){ var name="fn1"; console.log(this.name); } } object.fn1(); >>"my object" //---------------------------------------------- var name="window"; var object={ "name":"my object", "fn1":function(){ var name="fn1"; return function(){ var name="匿名函数内"; console.log(this.name); } } } object.fn1()(); >>"window" //大部分人都会做错的js闭包问题 function fun(n,o){ console.log(o); return { fun:function(m){ return fun(m,n); } } } var a=fun(0);a.fun(1);a.fun(2);a.fun(3);//undefined;0;0;0 var b=fun(0).fun(1).fun(2).fun(3);//undefined;0;1;2 var c=fun(0).fun(1);c.fun(2);c.fun(3)//undefined;0;1;1
最新评论