【js-4】JavaScript中this的指向

分享人:马扬睿

目录

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

在面向对象的语言中(例如Java,C#等),this含义是明确且具体的,即指向当前对象。一般在编译期绑定。而在javascript中, this是动态绑定的,它可以是全局对象、当前对象或者任意对象,这完全取决于函数的调用方式,并且在严格模式下也有不同, 这就导致了this具备了多重含义,可以使得javascript更灵活的使用。但是,带来了灵活性的同时也会给我们初学者带来不少困惑。 即使是细微的语法变化,都有可能意外改变this的值。

JavaScript 中函数的调用有以下几种方式:作为对象方法调用,作为函数调用,作为构造函数调用,和使用 apply 或 call 调用。 下面我们将按照调用方式的不同,分别讨论 this 的含义

语法:this

2.知识剖析

2.1 几种不同调用方法中this的指向

全局上下文

bind()方法

作为对象的方法

原型链中的this

getter与setter 中的this

作为函数调用

作为构造函数

事件处理的时候

作为一个内联事件处理函数

3.常见问题

JavaScript的设计缺陷

虽然this只是一个很小的概念,但是我们可以借此理解js中函数的执行环境,有讲得不对的地方也请大家及时指出,一起探讨

4.解决方案

5.编码实战

6.扩展思考

如何能加深记忆? (this永远指向的是最后调用它的对象,也就是看它执行的时候是谁调用的。)

严格模式下的this

7.参考文献

参考一: JavaScript 参考文档

参考二: 深入浅出 JavaScript 中的this

8.更多讨论

感谢观看 祝大家五四青年节快乐

马扬睿