js中关于this的使用

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

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

1、函数有所属对象,则指向所属对象学习

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

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

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

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

执行结果以下:

4、箭头函数中的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的怎样使用的理解。spa

相关文章
相关标签/搜索