javascript什么是this指向,?

什么是this指向?

this指向就是函数包含它被调用时所属的对象,就是他被作为方法被调用时所指的对象。
this指向取决与你调用的函数,也就是谁调用的this,this就指向谁;你调用的我,我就指向你。
记住:this只能在函数里面用。谁调用的函数,this就指向谁。
具体来看一下代码:

function fnn(){
console.log(this);//整个window对象
}
fnn()//函数调用

这个this呢他被函数包含着,然后函数被调用,这个函数被调用是在全局被调用了,所以这个this呢它指向整个windows对象;也就相当于window.fnn();window调用的这个函数,这个this就指向整个window对象

function fnn(){
var agg='小张';
console.log(this.agg);//undefined
}
fnn()//函数调用

为啥会是undefined呢?
因为fnn函数是在全局中被window对象所调用,agg是定义在函数里,
在全局里并没有声明这个变量,访问不到,所以是undefined,
那这样就ok了:

var agg='小张';
function fnn(){
var agg='小李';
console.log(this.agg);//小张
}
fnn()//函数调用

再举个例子哈:

    var fn = {
        a: 1,
        b: {
            a: 2,
            fn: function () {
                console.log(this.a) // 2
            }
        }
    }
    fn.b.fn()//调用里面的函数

说明:作为对象来调用,this指向它的上一级;

总结下:
this在什么情况下可以用?
1,函数调用,就是它可以访问到全局window对象
2,作为对象方法调用,在这this就指向它的上级对象
3,作为构造函数调用

你可能感兴趣的:(javascript什么是this指向,?)