夜猫的个人小站

       继续码起来

关于作者

微博北极熊硬糖
北京海淀区

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

最新评论

发表评论
回到顶部