web前端
您现在所在的位置:首页>企业动态>web前端

Js中this的指向指的什么,web前端知识,web前端培训

编辑:学到牛牛IT培训    发布日期: 2022-02-10 10:34:47  

java">JavaScript中this的存在为我们写代码提供了非常多的帮助,但是在具体使用的时候this的具体指向会变得各不相同,在本篇文章中,我们将详细讨论this的指向机制。

首先我们要明确一个概念,this既不是指向当前函数,也不是某个固定的对象,而是函数在执行时的环境对象。也就是是说,函数内this的指向只和函数是如何被调用的有关,和函数的定义方式以及位置等没有必然的联系。

1. 最普通的函数调用

上述案例中,我们可以认为全局函数demo是顶层对象window的方法,所以可以认为是window在调用demo函数,所以其中的this指向的是window对象。

function demo(){ 
console.log(this); 
} 
demo();

2. 对象方法中的this

在上面这个案例中,执行的虽然也是demo函数,但是在我们是通过obj对象对demo函数的引用访问到demo函数的,所以可以认为是obj对象在调用函数demo,函数内this的this就要指向obj对象。

function demo(){ 
console.log(this); 
} 
var obj = { 
foo:demo 
} 
obj.foo();

3. 定时器中的this

在第一个定时器中,通过定时器执行函数demo时,可以依然认为demo是全局对象window的方法,所以是window对象在调用demo函数,所以this依然指向window。而第二个定时器中是一个匿名函数,一般匿名函数的执行具有全局性,也就是可以认为匿名函数是是在全局环境中被调用的,那么该定时器函数内的this就指向了全局环境对象window。

function demo(){ 
console.log(this); 
} 
setTimeout(demo,1000); 
setTimeout(function(){ 
console.log(this); 
},2000);
免费试学
课程好不好,不如实地听一听

封闭学习

2

1

联系我们

电话:028-61775817

邮箱:1572396657@qq.com

地址:成都高新西区西芯大道4号

  • 学到牛牛在线咨询

    扫一扫,免费咨询

  • 学到牛牛公众号

    微信公众号

学一流技术,找高薪工作

7-24小时服务热线:

028-61775817

版权声明 网站地图

蜀ICP备2021001672号

课程问题轻松问