丁小柒javascript进阶-this与作用域

来源:互联网 发布:ubuntu一直在登录界面 编辑:程序博客网 时间:2024/05/16 11:33

什么是this,this就是这个,其实在javascript中this挺迷惑人的,谁知道特么this到哪一个了,那么,上代码

    var a=1;            var b={                a:0,                c:(function(){                    this.a=2;                    a=7;                    console.log("this.a"+this.a);                                   console.log("第一层"+a);                    return function(){                        console.log("第二层"+a);                        return this.a=4;                                                                    }                })()            };            console.log("全局"+a);            console.log("返回值"+b.c());

直接复制了控制台输出

[Web浏览器] "this.a2"  /HelloHBuilder/index.html (22)[Web浏览器] "第一层7" /HelloHBuilder/index.html (23)[Web浏览器] "全局7"  /HelloHBuilder/index.html (30)[Web浏览器] "第二层7" /HelloHBuilder/index.html (25)[Web浏览器] "返回值4" /HelloHBuilder/index.html (31)

通过对比我们可以发现,一个函数内,使用var的变量是局部变量,不使用var的变量则会从上一级作用域里获取,而this只能获取到当前作用域内的相关变量
所以this有相当于指向的是当前对象
通过对象来调用函数,this指向了对象,如果把对象的函数变成变量,这个变量属于全局,this指向了window

0 0