js中关于this的使用

369 阅读1分钟

在最近的学习课程中,接触到了this这个代码的使用方法。有几点关于this的使用方法。接下来以我的理解作为出发点,来分析一下this的使用。

遇到this,一定要记得这一句:函数执行时,this总是指向调用该函数的对象,即判断this所在的函数属于谁。

一、函数有所属对象,则指向所属对象

这里的getValue属于对象myObject,所以this就指向myObject,执行结果如下:

二、函数没有所属对象时,就指向全局对象window

在这里,foo属于全局对象,所以foo函数打印的this.value为undefined。执行结果如下:

三、setTimeout和setInterval方法也是属于全局对象的,所以在这两个函数体内this是指向全局的,所以也是这种情况,如下:

执行结果如下:

四、箭头函数中的this(这个this绑定的是定义时所在的作用域,而不是运行时所在的作用域,箭头函数其实没有自己的this,所以箭头函数内部的this实际上是外部的this)代码如下:

var myObject={
    value:100
};
myObject.getValue=function(){
    setTimeout(()=>{
        console.log(this.value);
        console.log(this);
    },0);
    return this.value;
}
console.log(myObject.getValue());

以上就是我对于this的怎样使用的理解。