JavaScript中this的指向问题及面试题你掌握了吗?

本文详细探讨了JavaScript中this关键字的指向问题,强调其由上下文环境动态决定。内容包括全局环境、普通函数调用、call/apply/bind函数调用、对象属性方法调用、构造函数调用以及箭头函数中this的指向。此外,还介绍了this相关的面试题,如手写bind函数和new操作符的工作原理。
摘要由CSDN通过智能技术生成

this 作为JavaScript中的一个关键字,它的复杂度很高,主要原因是它所处不同场景的代表的指向是不一样的。这里先做一个结论,重要事情说三遍:

this的指向是由上下文环境动态决定的

this的指向是由上下文环境动态决定的

this的指向是由上下文环境动态决定的

关注我的头条号,分享更多的技术学习文章,我自己是一名从事了多年开发的web前端老程序员,前段时间我花了一个月整理了一份最适合2020年学习的web前端学习干货,各种框架都有整理,送给每一位前端小伙伴,想要获取的可以关注我的头条号并在后台私信我:前端,即可免费获取。

this指向实例场景
关于this的指向的不确定性,主要体现在如下几个应用场景中:

全局环境
普通函数调用
由call/apply/bind函数调用
对象属性方法调用
构造函数调用
箭头函数
全局环境
在全局环境中无论是否是严格模式,this 均指向全局对象,例如浏览器端的 window

// 在浏览器中, window 对象同时也是全局对象:
console.log(this === window); // true

a = 37;
console.log(window.a); // 37

this.b = “MDN”;
console.log(window.b) // “MDN”
console.log(b) // “MDN”
普通函数调用
当普通的函数,直接调用的时候,一般来说分两种情况:

严格模式绑定到 undefined
非严格模式绑定到全局对象 window
function

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值