美文网首页互联网科技程序员
彻底理解JavaScript中this指向——做到以不变应万变

彻底理解JavaScript中this指向——做到以不变应万变

作者: 8b5cc58dcfe6 | 来源:发表于2018-12-03 11:55 被阅读2次

JavaScript中this指向比较混乱,本篇文章介绍一个新的简单方法,可以彻底掌握this的指向。

web前端学习扣qun:584226069免费领取全套教学视频资料!

JavaScript语言中的this相对与其他强类型语言中的this更为复杂和混乱,主要体现在:

JavaScript中所有方法在执行时都可以使用this;

this指向是在方法运行时决定的,同一个方法不同方式调用时其运行时this指向也不同;

this指向可以修改(可以通过相关方法改变方法的this指向,执行该方法的过程中时this是不可以被修改的);

JavaScript中this有以下特点:

this是执行上下文环境中的一个不可变属性;

this是没有一个类似搜寻变量的过程。当你在代码中使用了this,这个this的值就直接从执行的上下文中获取了,而不会从作用域链中搜寻。this的值只取决中进入上下文时的情况。

确认JavaScript中this的指向只需要记住以下三点:

方法默认指向window(node中为global),在严格模式下默认指向undefined;

方法有调用者则指向调用者,如obj.test(), 则test方法执行时的this会指向obj。

apply, call, bind 可以改变this指向,指向你绑定的对象。

实例:

无调用者的情况:

案例1:

web前端学习扣qun:584226069免费领取全套教学视频资料!

案例2:

web前端学习扣qun:584226069免费领取全套教学视频资料!

案例3:

web前端学习扣qun:584226069免费领取全套教学视频资料!

有调用这情况:

案例4:

web前端学习扣qun:584226069免费领取全套教学视频资料!

有调用者和无调用者对比:

案例5:

web前端学习扣qun:584226069免费领取全套教学视频资料!

特殊情况:

1. new 操作符:

构造函数执行前先创作一个空对象,并将this执行该空对象;然后执行构造函数,执行完将this对象返回

web前端学习扣qun:584226069免费领取全套教学视频资料!

2.箭头函数

this与封闭词法上下文的this保持一致。

web前端学习扣qun:584226069免费领取全套教学视频资料!

相关文章

网友评论

    本文标题:彻底理解JavaScript中this指向——做到以不变应万变

    本文链接:https://www.haomeiwen.com/subject/scqycqtx.html